缺省参数
除了常规传递参数的方式之外,还有缺省参数,主要特点如下:
1、如果外部调用该函数,而没有给缺省参数传递参数,该形参直接取默认的参数值;
2、如果外部调用时给缺省参数传递了参数,那么该形参的值应该等于外部传递的参数;
3、缺省参数只能放置在常规形式参数的后面;
4、缺省参数可以不用传递;
5、设置缺省参数的时候一般设置为常用的值;
代码示例1:
# 参数的解读
print("亲爱的同志们,我爱你们!")
# 输出结果:亲爱的同志们,我爱你们!
# 解读:这里就是给 print 函数传递了一个参数:亲爱的同志们,我爱你们!
# 当我们输出两段print函数的时候
print("亲爱的同志们,我爱你们!")
print("亲爱的同志们,我爱你们!")
# 输出结果:
# 亲爱的同志们,我爱你们!
# 亲爱的同志们,我爱你们!
# 系统默认会换行输出结果,这表示,print函数后面默认会有个换行符 end = \n ,这就是print函数默认的缺省参数
print("亲爱的同志们,",end="")
print("我爱你们!")
# 输出结果:亲爱的同志们,我爱你们!
# end=""缺省参数换行符 \n 用空值替换了
代码示例2:
# 列表排序
gl_list = [12,25,63,58]
# 对列表进行升序排序
gl_list.sort()
print(gl_list)
# 输出结果:[12, 25, 58, 63]
# 对列表进行反转,实现了降序
gl_list.reverse()
print(gl_list)
# 输出结果:[63, 58, 25, 12]
# 对列表进行反转,实现了降序
gl_list.sort(reverse=True)
print(gl_list)
# 输出结果:[63, 58, 25, 12]
# sort函数也有缺省参数,当括号里面不填参数的时候,则默认缺省参数false,当填了参数的时候,则执行参数
怎么看函数后面都有哪些缺省参数?
1、鼠标滑动到对应的名称上面,会有相关内容提示;
2、按住 ctrl 健,点击鼠标左键,就可以查看函数具体的描述,也可以看到该函数后面都有什么缺省参数;
3、下面有函数的注释和缺省参数的解释,如果看不懂英文的,可以使用翻译;
4、根据注释,测试使用方法;
5、上网查询资料,求证并讨论;
缺省参数的应用场景
代码示例:
# 定义函数输出该姓名是男士还是女生
def print_info(name,gender=True): # 定义传递了个缺省参数gender=True
gender_txt = "男生"
if gender == False:
gender_txt = "女生"
print("{}是{}".format(name,gender_txt))
print_info("美丽",False)
print_info("白马王子") # 缺省参数可以不传递,则默认了缺省参数True
print_info("魔女",False)
"""
输出结果:
美丽是女生
白马王子是男生
魔女是女生
"""
应用场景:当我们希望默认执行某些东西的时候可以使用缺省参数,例如print函数默认会在输出的内容后面加给换行符。
代码示例2:
def sum(a,b=22): # 定义了个缺省参数 b=22
result = a + b
print(result)
sum(11) # 当不输入参数的时候,则默认缺省参数 b=22
'''
输入出结果:
33
'''
参数传递方式默认从左往右传递,也可指定参数传递(命名参数),注意命名参数一定要和函数定义时的参数一致。
代码示例:
def sum(a,b=22,c=10): # 定义了两个缺省参数b=22,c=10
result = a + c
sum(11,c=11) # 指定了命名参数c=11
# 这里的 a=11,b=22,c=11,执行程序 a+c=11+11=22
'''
输入出结果:
22
'''