day10

一.函数的使用应该分为两个明确的阶段

1. 定义阶段:只检测语法,不执行函数体代码
def func():
2. 调用阶段:会触发函数体代码的执行
func()

二:函数的定义三种形式

1.有参函数

2.无参函数

3.空函数

三:函数调用的三种形式

1.语句形式 register()

2.表达式 res=max2(10,20)*12

3.将函数的调用当作参数传给另外一个函数 res=max2(max2(10,20),30)

四.函数的返回值

一 函数的返回值需要注意:
1 返回值没有类型限制
2 返回值没有个数限制
返回1个值:调用函数拿到的结果就是一个值
 返回多个值:调用函数拿到的结果就是一个元组
 返回0个值,或者不写return:调用函数拿到的结果就是None

二 return关键字:return是函数结束的标志,函数内可以有多个return,但只要执行一次,整个函数就结束

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

一: 函数的参数分为两大类:
 形式参数(形参): 在定义函数阶段,括号内定义的参数/变量名称为形参
 实际参数(实参): 在调用函数阶段,括号内传入的值/变量值称为实参
ps: 在调用函数阶段会将实参(值)的值绑定给形参(变量名),这种绑定关系只在调用函数时生效,在函数执行完毕后就会解除绑定

1. 位置参数:
1.1 位置形参: 在定义阶段,按照从左到右的顺序依次定义的形参称之为位置形参
 特点: 但凡时按照位置定义的形参,必须被传值,多一个不行少一个也不行

1.2 位置实参: 在调用阶段,按照从左到右的顺序依次传入的值称之为位置实参
 特点:
 1. 与形参一一对应


关键字实参: 在调用阶段,按照key=value的形式定义的实参称之为关键字实参
特点: 可以完全打乱顺序,但仍然能为指定的形参传值(总结:指名道姓地为指定的形参传值)

1.2默认形参:在定义阶段,就已经为形参赋值,改形参称之为默认参数。

特点:1定义阶段就已经有值以为着调用阶段可以不用传值

2.位置形参必须放到默认形参的前面

3.默认形参的值在函数阶段就已经固定死了,定义阶段之后的改动不会影响该值。

4.默认形参的值通常应该是不可变类型

5.实参的形式可以是位置实参与关键字实参混合使用,但是必须遵循原则
 1.位置实参必须放在关键字实参的前面
 2.不能对同一个形参重复传值

*的用法:

在形参前加上*,会将实参传的溢出的值以元组的形式储存,并赋值给*后的形参名

**的用法

在形参前加上**,会将实参传的溢出的值以字典的形式储存,并赋值给*后的形参名

原文地址:https://www.cnblogs.com/endlesswaltz/p/9703371.html