多類型傳值:python
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
冗餘參數:code
>>> 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}
遞歸的注意事項: 必須有最後的默認結果: 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)
另一種方法:utf-8
def factorial(n): if n == 0: return 1 else: return n * factorial(n-1) print factorial(5)
求1-100相加的和:coding
def factorial(n):方法
if n == 0: return 0 else: return n + factorial(n-1) print factorial(100)