1.函数的返回值
return关键字的作用
return是一个关键字,在pycharm里,会变成蓝色的关键字。
1.1没有写返回值
如果未定义返回值,会默认返回一个None。
1 def my_len(str):2 length = 03 for i in str:4 length += 15 print(length)6 ret = my_len('hello,world')7 print(ret)
1.2 返回一个值
1 def my_len(str):2 length = 03 for i in str:4 length += 15 return length6 ret = my_len('hello,world')7 print(ret)
1.3返回多个值
返回的多个值会被组织成元祖, 也可以用多个值来接收
1 def ret_demo(): 2 """ 3 4 :return: 多个值 5 """ 6 return 1,2,3,4 7 def ret_demo2(): 8 return 1,['a','b'],3,4 9 10 ret = ret_demo()11 print(ret) # (1, 2, 3, 4)12 ret2 = ret_demo2()13 print(ret2)# (1, ['a', 'b'], 3, 4)
原因:序列化解压
1 # 序列解压一 2 a,b,c,d = (1,2,3,4) 3 print(a) 4 a,_,_,d = (1,2,3,4) 5 print(d) 6 a,*_ =(1,2,3,4) 7 print(*_) 8 # 同样也适用于字符串、列表、字典、集合 9 a,b = { 'name':'eva','age':18}10 print(a,)11 print(b)
2. 函数的参数
2.1 位置参数
2.1.1 按照位置传值
1 # 位置传参2 def mymax(x,y):3 return x if x>y else y4 ma = mymax(10,20)5 print(ma)
2.1.2 按照关键字传值
1 # 按照关键字位置去传递参数2 def mymax(x,y):3 return x if x>y else y4 ma = mymax(y=10, x=20)5 6 print(ma)
2.1.2位置、关键字混合使用
1 def mymax(x,y):2 return x if x>y else y3 ma = mymax(10,y=20)4 print(ma)
正确用法:
①、位置参数必须在关键字参数的前面
②、对于一个形参只能赋值一次
2.2 默认参数
2.2.1.正常使用
为什么要有默认参数:将变化比较小的值设置为默认参数
2.默认参数的定义
1 # 默认参数2 def stu_info(name,sex="male"):3 print(name,sex)4 return 'a'5 print(stu_info('alex'))6 print(stu_info('eva','female'))
2.2.2 参数陷阱
参数陷阱:默认参数是一个可变数据类型
1 # 参数陷阱:默认参数是一个可变数据类型2 def defult_param(a,l=[]):3 l.append(a)4 print(l)5 print(defult_param('egon'))6 print(defult_param('alex'))
2.3 动态参数
动态参数,也叫不定长参数,也就是你需要传递的参数很多,不定个数,这种情况下,需要使用*args,**kwargs, *args是元祖形式,接收出去键值对以外的所有参数。
*kwargs接收的只是键值对的参数,并且只保存在字典中
1 def trans_para(*args, **kwargs):2 print(args, type(args))3 print(kwargs, type(kwargs))4 # 调用5 trans_para("jinxin",12,[1,2,3,4,],[3,4,],(1,4,7),{ "a": "123", "c":456}, country="china")