参数列表是由一系列参数组成,以逗号隔开。在调用函数时,如果需要向函数传递参数,则被传入的参数称为实参,而函数定义时的参数称为形参,实参与形参之间可以传递数据。
位置参数
位置参数是指函数调用时传递实参的顺序与定义函数的形参顺序需保持一致,如下所示。
1 def printInfo(name, score):
2 print('姓名:%s\n成绩:%.2f'%(name, score))
3 printInfo('隼与鱼', 98)
4 # printInfo(98, '隼与鱼')
运行结果如下图所示。
运行结果
在上例中,第1行到第2行定义printInfo()函数,第3行调用函数,其数据传递如下图所示。第4行将两个实参的位置调换,则发生错误,因此将此行注释。
函数参数传递.png
在上图中,当函数调用时,实参的传递顺序与定义函数形参的顺序需保持一致,由于实参的顺序与函数定义时形参的位置有关,因此称为位置参数。
关键参数
关键参数是指函数调用时允许传递实参的顺序与定义函数的形参顺序不一致,因为 Python解释器能够用形参名匹配实参值,避免了用户需要牢记位置参数顺序的麻烦,如下所示。
1 def printInfo(name, score):
2 print('姓名:%s\n成绩:%.2f'%(name, score))
3 printInfo('隼与鱼', 98)
4 printInfo(score = 98, name = '隼与鱼')
运行结果如下图所示。
运行结果
在上例中,第1行到第2行定义printInfo()函数,第4行调用函数,其参数是根据函数定义时形参的名称进行数据传递,因此称为关键参数。
默认参数
如果在函数定义时参数列表中的某个形参有值,就称这个参数为默认参数。注意默认参数必须放在非默认参数的右侧,否则函数将出错,如下所示。
1 def printInfo(name, school = '北大'):
2 print('姓名:%s\t学校:%s'%(name, school))
3 printInfo('隼鱼')
4 printInfo('隼与鱼', '清华')
5 printInfo(school = '北航', name = '简书')
运行结果如下图所示。
运行结果
在上例中,第3行调用函数时,由于定义函数时形参school有默认值'北大',因此调用时可以省略不写该参数,如果想修改默认值,则在调用时传入该参数即可,如本例中的第4行。
默认参数可以让函数的调用尽可能简化,就如同安装PC端软件时,程序会提示用户默认安装路径,当然用户也可以自定义安装路径。
此外,如果将例题中的name与school调换位置,具体示例如下:
def printInfo(school = '北大', name): # 错误写法
print('姓名:%s\t学校:%s'%(name, school))
运行程序将会报错,如下图所示。
运行结果








网友评论