1、一个函数返回多个值 使用 return + (元组、列表、字典) (避免使用全局变量,返回多个值,尽量使用字典)
2、缺省参数(可以不写 相当于默认值)
3、不定长参数(*args (元组) **kwargs(字典))
当列表/元组在当做实参传递的时候 :
传递实参的时候带上 一个 【 * 】会对列表进行解包 传递实参的时候带上 两个 【 * 】会对字典进行解包
4、不可变数据类型 : 数字、字符串、元组
可变数据类型 : 字典、列表
不可变数据类型可以作为字典的“键”
5、函数传递是引用
只要是在调函数的时候传递的参数,不管传递的参数是变量还是不是变量 统统传递的都是引用
在函数中,当一个列表被当做实参进行传递时候 a+=a 和 a=a+a 的结果不一样
6、递归函数(自己调用自己)
7、匿名函数 (lambda) 需要函数但是又不想命名函数的时候
lambda 参数 :参数表达式
应用:将lambda函数赋值给一个变量 add=lambda x, y: x+y
将lambda函数作为参数传递给其他函数。
(sort函数进行排序 b.sort(key=lambda x:x["age"],reverse=True)
8、总结:
01、定义函数
02、调用函数
03、函数的传递
04、根据函数有无参数分为4种类型
05、函数的返回值 return xxx=F() 保存返回值
06、全局变量和局部变量 对全局变量是不可变数据类型进行修改的话 要在前面加 global 可变类型全局变量修改的话 不用加 global
如果全局变量名和局部变量名相同,会根据就近原则选择近的那个(局部的)
07、 一个函数中可以写多个return 但是只执行一个 执行完就结束函数
一个函数想返回多个数据,使用 return + (元组、列表、字典)
08、一个程序中,函数名不能重名,如果重名会对刚开始的那个函数进行覆盖