• 函数day10


    一、函数的返回值

    1、什么是返回值
    返回值是一个函数的处理结果,

    2、为什么要有返回值
    如果我们需要在程序中拿到函数的处理结果做进一步的处理,则需要函数必须有返回值


    3、函数的返回值的应用
    函数的返回值用return去定义
    格式为:
    return 值

    注意:
    1、return是一个函数结束的标志,函数内可以有多个return,
    但只要执行一次,整个函数就会结束运行

    2、return 的返回值无类型限制,即可以是任意数据类型
    3、return 的返回值无个数限制,即可以用逗号分隔开多个任意类型的值
    0个:返回None,ps:不写return默认会在函数的最后一行添加return None
    1个:返回的值就是该值本身
    多个:返回值是元组

    二、函数调用

    1 什么是调用函数
    函数名(...)即调用函数,会执行函数体代码,直到碰到return结束或者一直运行完毕所有代码

    2 为何要调用函数
    用函数的功能

    3、函数调用分为三种形式
    max2(1,2)
    res=max2(3000,2000) * 12
    res=max2(max2(1000,2000),3000)

    三、函数参数分类

    总的分类:
     1、形参:在函数定义阶段括号内定义的参数,称之为形式参数,简称形参,本质就是变量名
     def foo(x,y): #x=1,y=2
     print(x)
     print(y)
    2、实参:在函数调用阶段括号内传入的值,称之为实际参数,简称实参,本质就是变量的值
     foo(1,2)

    详细的分类:
    #一、位置参数:
    位置形参:在函数定义阶段,按照从左到右的顺序依次定义的形参,称之为位置形参
    特点:但凡是按照位置定义的形参,都必须被传值,多一个不行,少一个也不行
    def foo(x,y):
    print('x:',x)
    print('y:',y)

    位置实参:在函数调用阶段,按照从左到右的顺序依次定义的实参,称之为位置实参
    特点:按照位置为对应的形参依次传值
     foo(1,2)
     foo(2,1)


    二、关键字实参:在调用函数时,按照key=value的形式为指定的参数传值,称为关键字实参
    特点:可以打破位置的限制,但仍能为指定的形参赋值
     foo(y=2,x=1)

    注意:
    1、可以混用位置实参与关键字实参,但位置实参必须放在关键字实参的前面
     foo(1,y=2)
     foo(y=2,1) #SyntaxError: positional argument follows keyword argument

    2、可以混用,但不能对一个形参重复赋值
     foo(1,y=2,x=10)

    三:默认参数:在函数定义阶段,就已经为形参赋值,该形参称为默认形参
    #特点:在定义阶段就已经被赋值,意味着在调用可以不用为其赋值

    # 注意:
    #1、位置形参必须放到默认形参的前面,否则报语法错误

    #2、默认参数的值只在定义阶段赋值一次,即默认参数的值在函数定义阶段就已经固定死了

    #3、默认参数的值通常应该定义不可变类型

    #总结:
    #实参的应用:取决于个人习惯,
    #形参的应用:
    #1、位置形参:大多数情况下的调用值都不一样,就应该将该参数定义成位置形参
    #2、默认形参:大多数情况下的调用值都一样,就应该将该参数定义成默认形参

    四:可变长参数:指的是在调用函数时,传入的参数个数可以不固定
    #而调用函数时,传值的方式无非两种,一种位置实参,另一种时关键字实参
    #所以对应着,形参也必须有两种解决方案,来分别接收溢出的位置实参(*)与关键字实参(**)

    #1、形参中某个参数带*
    #形参中的*会将溢出的位置实参全部接收,然后存储元组的形式,然后把元组赋值给*后的变量名


    # 2、实参中的参数也可以带*
    # 实参中带*,*会将该参数的值循环取出,打散成位置实参
    #ps:以后但凡碰到实参中带*的,它就是位置实参,应该立马打散成位置实参去看

    #注意:约定俗成形参中的*变量名的写法都是:*args

    #1、形参中某个参数带**
    #形参中的**会将溢出的关键字实参全部接收,然后存储字典的形式,然后把字典赋值给**后的变量名

    2、实参中的参数也可以带**,该参数必须是字典
    # 实参中带**,**会将该参数的值循环取出,打散成关键字实参
    #ps:以后但凡碰到实参中带**的,它就是关键字实参,应该立马打散成关键字实参去看

    #注意:约定俗成形参中的**变量名的写法都是:**kwargs

    #五 命名关键字形参:在函数定义阶段,*后面的参数都是命名关键字参数(**)
    # 特点:在传值时,必须按照key=value的传,并且key必须命名关键字参数指定的参数名

  • 相关阅读:
    oracle的安装与plsql的环境配置
    Working with MSDTC
    soapui-java.lang.Exception Failed to load url
    Oracle 一个owner访问另一个owner的table,不加owner
    Call API relation to TLS 1.2
    Call API HTTP header Authorization: Basic
    VS2008 .csproj cannot be opened.The project type is not supported by this installat
    The changes couldn't be completed.Please reboot your computer and try again.
    Create DB Table View Procedure
    DB Change
  • 原文地址:https://www.cnblogs.com/xiaocao736427460/p/9164029.html
Copyright © 2020-2023  润新知