Python函式中多型別傳值和冗餘引數及函式的遞迴呼叫
阿新 • • 發佈:2018-11-29
1.多型別傳值和冗餘引數
多型別傳值:
def fun(x,y):
return x +y print fun(3,5) 8 print fun(*t) 3 def fun(x,y,z): return x + y + z t1 = (1,2,3) fun(*t1) 6 fun(*(2,4,5)) 11 fun(1,*t) 4 print t (1, 2) fun(x=1,y=3,z=5) 9 >>> dic = {'x':1,'y':3,'z':6} >>> fun(**dic) 10
冗餘引數:
>>> def fun(x,*args,**kwargs): ... print x ... print args ... print kwargs ... >>> fun(1) 1 () {} >>> fun(1,2) 1 (2,) {} >>> fun(1,2,3) 1 (2, 3) {} >>> t (1, 2) >>> fun(1,2,3,'a',[1,2],*t,a=3,**{'t':11,'p':22}) 1 (2, 3, 'a', [1, 2], 1, 2) {'a': 3, 'p': 22, 't': 11}
2.函式的遞迴呼叫
遞迴的注意事項:
必須有最後的預設結果:
if n == 0
遞迴引數必須向預設結果收斂的:
factorial(n-1)
階乘指令碼:
#!/usr/bin/env python # -*- coding:utf-8 -*- # 2018/11/28 11:57 # Feng Xiaoqing # jiecheng.py # ====================== def factorial(n): sum = 0 for i in range(1,n+1): sum += i return sum print factorial(100)
另外一種方法:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
print factorial(5)
求1-100相加的和:
def factorial(n):
if n == 0:
return 0
else:
return n + factorial(n-1)
print factorial(100)