zoukankan      html  css  js  c++  java
  • 【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)

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

    尾递归和循环是等价的

  • 相关阅读:
    线程&进程
    C#入门基础
    .Net GC垃圾收集机制(下)
    .Net GC垃圾收集机制(上)
    GAC的理解及其作用
    C# DES加密,KEY和IV不同设置的写法
    常见加密算法简析
    密码学
    数字签名是什么?(数字证书)
    加密算法和MD5等散列算法的区别
  • 原文地址:https://www.cnblogs.com/oiliu/p/4710992.html
Copyright © 2011-2022 走看看