抽象成函数
def fact(n): res=1 for i in range(1,n+1): res+=i; return res print(fact(10)) 56
关键字参数–用于参数比较多的情况下
def fuct(x,y,z): print(x,y,z) fuct(y=1,x=6,z=9) 6 1 9
关键字参数可以与位置参数混搭使用,但关键字参数必须在前面
默认参数必须放在非默认参数的后面
默认参数一定要是不可变的类型(数字,字符串,元组)
可变长参数 *args不知道会传过来多少参数 *args
该形参必须放在参数列表的最后
def foo(x,y,z,*args): print(x,y,z) print(args) foo(1,2,3,7,9,10) #多余的参数,打包传递给args 1 2 3 (7, 9, 10)
实参打散:
def foo(x,y,z,*args): print(x,y,z) print(args) foo(1,2,3,[4,5,6]) foo(1,2,3,*[1,2,3]) #打散的是列表,字符串,元组或集合 1 2 3 ([4, 5, 6],) 1 2 3 (1, 2, 3)可变长的参数 **kwargs 与字典有关
同样要放在参数的最后面
def foo(x,y,z,**kwargs): print(x,y,z) print(kwargs) foo(1,2,3,a=5,b=8) 1 2 3 {'a': 5, 'b': 8}
同样可以打散
可接受任意参数:
def foo(*args,**kwargs):函数体与变量的作用域
在函数体内部定义的变量—局部变量----仅在函数体内部发挥作用
在函数外部定义的变量—全局变量-----函数内外都可以用
通过 global 在函数体内定义全局变量
def mul(x,y): global z z=x*y return z mul(3,4) print(z) 12返回值
单个返回值直接return
多个返回值—以元组的形式
def foo(x): return 1,x,x**2,x**3 a,b,c,d=foo(3) #解包赋值 print(a) print(b) print(c) print(d) 1 3 9 27
没有return ,返回值为none
匿名函数lambda 变量 :函数体
常用在列表中,尤其是与 key=搭配
- sort(), sorted()
ls=[(92,22),(89,12),(77,89),(56,87)] ls.sort() ls [(56, 87), (77, 89), (89, 12), (92, 22)] ls.sort(key=lambda x:x[1]) ls [(89, 12), (92, 22), (56, 87), (77, 89)] ls.sort(key=lambda x:x[1]+x[0]) ls [(89, 12), (92, 22), (56, 87), (77, 89)]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)