1.6 多类型传值和冗余参数
多类型传值(实际参数)
指把元祖和字典的值作为实际参数来传递到函数里 前提是形参和实参的个数要一致
*元祖
===> 形式参数
**字典
===> 形式参数
(字典中key必须和形参一致)
1 | In [24]: t=(1,3) ##t是元祖 |
冗余参数(形式参数)
在定义形式参数时预定义一个空元祖或者空字典来接受实参
语法格式
1 | def fun(x,y, *args, **kwargs): |
1 | In [38]: def fun(x, *args, **kwargs): ##*args, **kwargs是冗余参数 |
1.7 函数的递归调用
函数的递归就是在函数内部,函数自己调用自己
注意:
1)必须有最后的默认结果 if n == 0
2)递归参数必须向默认结果收敛的 factorial(n-1)
练习
计算5的阶层和1-100的和1
2
3
4
5
6
7
8
9#!/usr/bin/python
def fun(n):
sum=1
for i in range(1,n+1):
sum *= i
return sum
print fun(5)
1 | #!/usr/bin/python |
使用递归来计算5的阶层和1-100的和1
2
3
4
5
6
7
8
9#!/usr/bin/python
def fun(n):
if n == 0: ##返回值1来结束递归
return 1
else:
return n * fun(n-1) ## n x n-1 x ...x1 最后在乘于上面的1来结束递归
print fun(5)
1 | #!/usr/bin/python |