【Python】[函数] 函数的参数与递归函数

一、函数的参数
1、位置参数
2、默认参数

n就是默认参数

def power(x,n=2):
    s=1
    while n > 0:
        n = n - 1
        s = s * x
    return s

默认参数有个坑,就是 默认参数要设置为 不可变对象,【str和None】
3、可变参数
一般情况下

def calc(numbers):
    s=1
    for n in numbers
        s=s+n*n
    return s

调用时需要把参数写成list或者tuple

>>>calc([1,2,3,4])

这样子就不用了【参数前边加个*号】,

def calc(*numbers):
    s=1
    for n in numbers
        s=s+n*n
    return s

调用时就直接写入参数就OK

>>>calc(1,2,3,4)

注意:可变参数允许你传入0个或任意个参数
4、关键字参数   **声明【说实话看了一遍还没有明白额】

5、命名关键字参数 * 声明,*号后边的就是命名关键字参数,且在调用的时候必须格式[参数名=‘值’]
   注意:使用命名关键字参数时,要特别注意,*不是参数,而是特殊分隔符
声明

def person(name,age,*,city,job):
    print(name,age,city,job)
>>>person('n','a',city='c',job='j')

6、参数组合


二、递归函数

经典函数:阶乘,

def fact(n):
    ifn==1:
        return 1
    return n*fact(n-1)

递归过深可能导致栈溢出,之后就来个名词“尾递归”,尾递归过深也会溢出

尾递归和循环是等价的

原文地址:https://www.cnblogs.com/oiliu/p/4710992.html