跳至正文
View Categories

< 1 min read

主要内容 #

  • 默认参数
  • 可变参数
  • 1. 默认参数 #

    在调用函数时,如果不指定某个参数,则会报异常。 为了解决这个问题,Python允许为参数设置默认值。 即定义函数时,直接给形式参数指定一个默认值。 这样,即便在调用函数时没有给已设置默认值的形参传递参数, 该参数也能直接使用定义函数时设置的默认值。 默认参数降低了函数调用的难度,而一旦需要更复杂的调用时,又可以传递更多的参数来实现。 无论是简单调用还是复杂调用,函数只需要定义一个即可。 默认参数定义语法如下: def 函数名(形参名, 形参名=默认值): 注意:
  • 可以有多个默认形参
  • 可以没有非默认形参
  • 默认形参的定义一定要在非默认形参的后面
  • 默认值一定是不可变对象类型,默认值尽量不要设置为列表
  • 以下程序自定义一个pow函数:
    def my_pow(x, n=2):
        r = 1
        while n > 0:
            r *= x
            n -= 1
        return r
    
    print(my_pow(5)) # 不指定参数n,只传递了参数x,此时n默认为2
    
    # 指定x和n,计算x的n次方,注意此时如果有多个默认参数,一定要按照顺序传入
    print(my_pow(5, 4)) 
    
    # 指定x和n,由于指定n=4,因此如果有多个默认参数,也能随意传入,只要调用时指定n=4
    print(my_pow(5, n=4))

    2. 可变参数 #

    在调用函数时,如果想传入任意数量的参数,而又不想在定义时一一指定。 为了解决这个问题,Python允许设置可变参数。 即传递参数时,传递的参数数量是可变的,从0到任意个参数。 可变参数定义语法如下: def 函数名(形参名, *形参名): 注意:
  • 可以没有非可变形参
  • 可变形参的定义一定要在必须参数后面
  • 可变参数使用*定义,函数内部接收到的可变参数是以元组保存
  • 以下程序自定义一个加法函数:
    def my_add(*numbers):
        sum = 0
        for n in numbers:
            sum += n
        return sum
    
    print(my_add()) # 可以没有参数
    print(my_add(5, 4)) # 可以只有1-2个参数
    print(my_add(1,2,3,4,5,6)) # 可以是任意多个参数

    3. 小结 #

  • 默认参数:定义函数时,直接给形式参数指定一个默认值
  • 可变参数:传递参数时,传递的参数数量是可变的
  • OJ训练题 #

    1、能量回收 – ★
    2、等腰直角三角形 – ★
    3、棋盘格 – ★
    4、趣味填空 – ★★
    5、我家的门牌号 – ★★★