Python 34

作者: 秋雨夏磊 | 来源:发表于2022-07-31 11:28 被阅读0次

    函数参数的灵活使用

    1.默认值参数

    2.列表参数

    1)默认值参数

    有参数的函数而言,必须在调用时制定参数

    #给函数参数定义默认值

    def max(num1=0, num2=0):

    if num1 > num2:

    return num1

    else:

    return num2

    print(max())#两个形参都为0

    print(max(-1))#两个形参分别为-1和0

    print(max(1, -1))#两个形参分别为1和-1

    ---------------------------------------------------------------

    #并非所有的参数都必须有默认值

    def max(num1, num2=0):

    if num1 > num2:

    return num1

    else:

    return num2

    print(max(-1, 5))

    #输出为0,因为第一个参数为-1,第二个参数默认值为0

    ------------------------------------------------------------------------------

    #常见的错误

    def max(num1=0, num2):

    if num1 > num2:

    return num1

    else:

    return num2

    非默认参数跟随默认参数

    (没有默认值的参数不能跟在默认参数后面)

    如果可以的话,仅有的一个数值将无法确定,究竟是应该用于改变第一个参数的默认值,还是直接赋给第二个没有默认值的参数

    2)列表参数

    列表参数并非类型为列表的参数!

    #先看看列表类型的参数

    def arraySum(num):

    sum =0

        for iin num:

    sum += i

    return sum

    num = [1, 2, 3, 4, 5]

    print(arraySum(num))

    #输出是15

    --------------------------------------------------------------

    #这样对不对

    def arraySum(num):

    sum =0

        for iin num:

    sum += i

    return sum

    num = [1, 2, 3, 4, 5]

    print(arraySum(1, 2, 3, 4, 5))

    报错,arraySum()接受1个位置参数,但给出5个位置参数

    arraySum函数只有1个位置参数,但是却给了5个参数

    #解决方法很简单

    def arraySum(*num):

    sum =0

        for iin num:

    sum += i

    return sum

    print(arraySum(1, 2, 3, 4, 5))

    *表示序列拆分操作符

    函数会把全部的参数拿过来,自动变成一个列表,主要方便处理个数不确定的参数

    例:

    定义一个函数sumPower,可以计算多个数值的任意幂值之和

    比如:

    1^2+2^2+3^2+4^2

    3^10+10^10+(-1)^10

    #1^2+2^2+3^2+4^2

    def sumPower(*num, power):

    sum =0

        for iin num:

    sum += i ** power

    return sum

    print(sumPower(1, 2, 3, 4, 2))

    TypeError: sumPower() missing 1 required keyword-only argument: 'power'

    类型错误:sumPower()缺少1个必须的仅关键字参数

    遗漏了一个必须的关键词参数,原因也很简单,虽然可以理解为1到4的每个数的平方和,但是也可以理解为是5个底数而缺少幂。

    相关文章

      网友评论

          本文标题:Python 34

          本文链接:https://www.haomeiwen.com/subject/ftdhwrtx.html