热门IT资讯网

在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)
0