在Python函数中如何多类型传值与递归调用
发表于:2024-11-28 作者:热门IT资讯网编辑
编辑最后更新 2024年11月28日,1.多类型传值和冗余参数多类型传值:def fun(x,y): return x +yprint fun(3,5)8print fun(*t)3def fun(x,y,z): return
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)