Python004函数
函数
- 声明关键字 def
1 | # 函数声明 |
带参数的函数
1 | def sum(m,n): |
注意事项
- def顶格写
- 函数内要有缩进
函数返回值
1 | def sum(a,b): |
return的作用
- 把结果返回给调用者
- 结束一个函数
- 如果写了多个return程序不会出现语法错误,并把第一个return的值返回
注意点函数声明要放在最前
它不像js一样函数声明后会提升
- python里函数声明要前置
- 先定义后使用
局部变量和全局变量
- 在函数里定义的变量叫局部变量,离开函数就没了
- 形参也是局部变量
1 | def test(): |
- 全局变量就是定义在函数外
1 | num = 100 |
如何解决全局变量修改报错的问题
- 在函数内部加上一个 global 声明
1 | num = 100 |
缺省参数
我的理解就是给参数设置默认值,你传递了就用你的不传递走默认(兜底)
1 | def xxx(a,b,c): |
- 缺省参数应该放在最后,避免歧义
1 | # 非常歧义的写法 你传递4个参数正确 传递3个我不知道自己试!!! |
不定长参数
1 | def xx(a,b,*args,**kwargs): |
规定
- args 写一个「 」表示传递多个没有名字的值的时候放入 args
- kwargs 写俩个「 」表示传递多余的参数带有名字的值的时候放入 kwargs
1 | A = [11,22,33] |
当列表/元组在做实参传递的时候,如果前面有一个*,表示对其进行解包
1 | [11,22,33] =======> 11,22,33 |
当字典在做实参传递的时候,如果前面有两个*,表示对其进行解包
1 | {aa:100,bb:200} =======> aa=100,bb=200 |
引用
- 可变数据类型 列表/字典
- 不可变数据类型 数字/字符串/元组
字段的key可以为。。。
1 | # 运行正常 |
匿名函数 lambda表达式
1 | def test(a): |
注意事项
- 匿名函数不能写print
把函数当作参数
1 | def test(a,b,fn): |
排序方法里使用
1 | aa = [ |