主要内容 #
默认参数
可变参数
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、我家的门牌号 – ★★★