zoukankan      html  css  js  c++  java
  • 函数基础之定义,三种形式,返回值

    函数基础

    函数的定义

    函数是一种思想。

    在程序中,函数就是具备某一功能的功能,事先讲工具准备好就是函数的定义,遇到场景拿来就用就是函数的调用。

    为何用函数

    我们如果过不使用函数的话,写程序时将会遇到三个问题:

    1.程序冗长

    2.程序的扩展性差

    3.程序的可读性差

    如何使用函数

    定义函数

    先定义函数,后调用:

    • 定义函数
    def 函数名(param1,param2....):
        """
        函数功能的描述信息
        :param1 描述
        :param2 描述
        :return  返回值
        code1
        code2
        code3
        """
        
        return   返回值
    
    • 调用函数

      函数名(param1、param2...)
      

    注册功能

    def register():
        # 注册功能
        username = input('username').strip()
        pwd = input('password').strip()
        
        with open('38a.txt','a',encoding='utf8') as fa:
            fa.write(f"{username}:{pwd}
    ")
            fa.flush()
            
    register()
    # 复用
    register()
    register()
    

    登录功能

    def login():
        inp_username = input('username:').strip()
        inp_pwd = input('password:').strip()
        
        with open('38.txt','rt',encoding='utf8') as fr:
            for user_info in fr:
                user_info = user_info.strip('
    ')
                user_info_list = user_info.split(':')
                if inp_username == user_info_list[0] and inp_pwd == user_info_list[1]:
                    print('login succesdful')
                    break
            
            else:
                print('failed')
    
    login()
    

    函数定义阶段

    def func():
    	bar()    # 不属于语法错误,不会报错
    	print('*'*10)
    

    只检测语法,不执行函数体代码

    函数调用阶段

    def bar():
        print('from bar')
    
    def foo():
        print('from foo')
        bar()
    
    foo()
    

    from foo
    from bar

    def foo():
    	print('from foo')
        bar()
        
    def bar():
        print('from bar')
    
    foo()
    

    from foo
    from bar

    定义函数的三种形式

    无参函数

    定义函数时参数是函数体接受外部值的一种媒介,其实就是一个变量名

    在函数阶段括号内没有参数,称为无参函数。需要注意的是:定义时午餐,意味着调用时也无需传入参数。

    如果函数体代码逻辑不需要依赖外部传入的值,必须得定义无参函数。

    def func():
        print('hello world')
    
    func()   # hello world
    

    有参函数

    在函数定义阶段括号内有参数,称为有参函数。需要注意的是:定义时有参,以为着调用时也必须传入参数。

    如果函数体代码逻辑需要依赖外部传入的值,必须得定义有参函数。

    def sum_self (x,y):
        res = x + y
        print(res)  # 3
        sum_self(1,2)
    

    空函数

    当你只知道你需要实现某个功能,但还不知道该如何用代码实现时,就可以暂时写个空函数,然后先实现其他的功能。

    def func():
        pass
    

    函数的返回值

    什么是返回值

    函数内部代码经过一些逻辑处理获得的结果。

    def func(): 
        name = 'shiqi' 
        return name
    name = func()
    print(name)
    

    shiqi

    为什么要有返回值

    • return是一个函数结束的标志,函数内可以有多个return,只要执行到return,函数就会执行。

    • return的返回值可以返回任意数据类型

    • return的返回值无个数限制,即可以使用使用逗号隔开返回多个值。

      ​ 0个:返回None

      ​ 1个:返回值是该值本身

      ​ 多个:返回值是元组

      def max_self(salary_x,salary_y):
          if salary_x > salary_y:
              return salary_x
          else:
              return salary_y
      
      max_salary = max_self(20000,30000)
      print(max_salary*12)
      

      360000

      返回多个值:
      def func():
          name = 'shiqi'
          age = 17
          hobby_list = ['sing','junm','rap','basketball']
          return name,age,hobby_list
      
      name,age,hobby_list = func()
      print(f"i am {name},my age is{age},i like {hobby_list}")
      

      i am shiqi,my age is17,i like ['sing', 'junm', 'rap', 'basketball']

  • 相关阅读:
    hdu5412CRB and Queries
    LCA rmq st model
    HDU 5348 MZL's endless loop
    2015多校联合训练赛 Training Contest 4 1008
    Bestcoder Tom and matrix
    TOJ 4105
    Codeforces D. Iahub and Xors
    Set 技巧之一
    1036: [ZJOI2008]树的统计Count
    一点点VIM
  • 原文地址:https://www.cnblogs.com/shiqizz/p/11514999.html
Copyright © 2011-2022 走看看