多类型传值: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)