day09

今日内容:

  定义函数的三种形式

  调用函数的三种形式

  函数的返回值

  函数传参

1、定义函数的三种形式

  1、无参函数

  2、有参函数

  有参、无参函数根据里边的代码块需求来定

  3、无参函数(在编写代码前构思出清晰的代码功能)

2、调用函数的三种形式

  1、语句形式

    def foo():

      print('from foo')

    foo()

  2、表达式形式

    def foo(x,y):

      res = x + y

      return res

    res = foo(1,2)

    res1 = foo(1,2)*100

  3、

    def foo(x,y):

      res = x + y

      return res

    res = foo(foo(1,2),3)

3、函数的返回值

  注意:1、返回值没有类型限制

     2、返回值没有个数限制

     3、return是函数结束的标志,可以有多个return

     4、return终止函数运行

4、函数传参:

  形参:在定义阶段括号内指定变量名,本质为变量名

  位置形参:在定义函数阶段从左到右的顺序一次定义的形参,位置形参

  注:但凡按照位置的形参必须被传值

  默认形参:在定义阶段,就已经为某个值赋值,可以在调用阶段不为其赋值

  注:位置形参应放在默认形参的前面,默认形参的值,在定义阶段已经被固定死了,默认参数的值通常为不可变类型

  

  实参:在调用阶段函数括号内传入的值,

  位置实参:在调用阶段,从左到右依次传入的值,为位置实参

  注:但凡按照位置定义的实参,会与形参一一对应

  关键字实参:在调用阶段,按照key=value的形式指名道姓的为形参传值

  注:可以打乱顺序传值,可以混合使用,但位置实参必须在关键字实参前面,不能对一个形参重复赋值。

  

  可变长度的参数

  实参:参数长度可变指在调用函数时,传入实参的数不固定。

  *:在形参中带*:会将调用函数时溢出的位置实参保存成元组,然后赋值

  **:在形参中带**:会将调用函数时溢出的关键字实参保存成字典,然后赋值

  

  *:在实参中,但凡在实参中带*,在传值前都是先将其打散成位置实参,在进行赋值

  **:在实参中,但凡在实参中带**,在传值前都先将其打散成关键字实参,在进行赋值。

  *args

  **kwargs

  命名关键字参数:放到*与**之间的参数

  注:必须按你找key = value的形式传值

  

    

原文地址:https://www.cnblogs.com/yaoxiaofeng/p/9392234.html