1.多类型传值和冗余参数

多类型传值:

def fun(x,y): return x +yprint fun(3,5)8print fun(*t)3def fun(x,y,z): return x + y + zt1 = (1,2,3)fun(*t1)6fun(*(2,4,5))11fun(1,*t)4print 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 -*-# Feng Xiaoqing # jiecheng.py # ======================def factorial(n): sum = 0 for i in range(1,n+1): sum += i return sumprint 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)