python学习7—函数定义、参数、递归、作用域、匿名函数以及函数式编程
1. 函数定义
deftest(x)#discription
y = 2 *xreturn y
返回一个值,则返回原本的object;
过程与函数的区别,过程无return返回值,但是python会自动赋予一个None返回值。
deftest(x)#discription
y = 2 *xprint(y)
若返回多个值,python会将多个元素包装成一个元组,并返回。即实际上仍然只返回一个值。
函数只要碰到第一个return就会结束调用。
2. 传参数的方法
位置参数,一一对应
关键字参数,不须一一对应
test(x=5)
混用位置参数与关键字参数时,位置参数必须位于关键字参数前面,且同一个形参不能传多个值。
3. 参数组
可变长短的参数,*args,**kwargs
*的作用就是for循环取参数
def test(x,*args)print(x)print(args[1])
test(1,2,3,4,5,6)
test(1,[2,3,4,5]) #传入整个列表作为一个整体
test(1,*[2,3,4,5]) #传入列表中的单个元素
**kwargs处理键值对,字典
def test(x,**kwargs)print(x)print(kwargs)
test(1,y=2,z=3)
连起来用,*args必须位于**kwargs前面