一、函数
定义函数
使用关键字def,定义函数,接下来告知函数名称,还可能在括号内指出函数为完成任务需要什么样的信息。括号必不可少,函数定义以冒号结尾。文档字符串用三引号括起,描述函数是做什么的。
简单定义函数
1.1 向函数传递信息
使用变量向函数传递信息
1.2 实参和形参
上图中变量username是一个形参——函数完成其工作所需的一项信息。 而调用函数括号中的值是一个实参。实参是调用函数时传递给函数的信息。
二、传递实参
函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递实参的方式很多,可使用位置实参,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可使用列表和字典。
2.1 位置实参
调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此最简单的关联方式就是基于实参顺序。这种关联方式被称为位置实参。
在函数中可以根据需要使用任意数量的位置实参,Python将按顺序将函数调用的实参关联到函数定义中相应的形参。
可以多次调用函数。
位置实参简单实例
位置实参的顺序很重要
使用位置实参来调用函数时,如果实参顺序不正确,结果会出乎意料。
2.2 关键字实参
关键字实参是传递给函数的名称-值对。直接在实参中将名称和值关联起来,因此向函数传递实参就不会混淆,关键字实参让你无需考虑函数调用的实参顺序,清楚地指出函数调用中各个值的用途。使用关键字实参,必须准确的指出函数定义中的形参名。
关键字实参简单例子
2.3 默认值
编写函数时,可给每个形参指定默认值。这样调用函数时没传实参,则使用默认值。
使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。
这让Python依然能够正确地解读位置实参。
简单的默认值例子
2.4 等效的函数调用
可以混合使用位置实参、关键字实参和默认值。可以有多种函数调用方式。
混合使用例子
2.5 避免实参错误
提供的实参多于或少于函数完成其工作所需要的信息时,将出现实参不匹配的错误。