“函数应该做一件事。做好这件事。只能做这一件事。”
——罗伯特·C.马丁(Robert C.Martin)
本章将介绍函数(function):可接受输入,执行指令并返回输出的复合语句。通过函数,我们可以在程序中定义功能,并重复使用。其示例如图4-1所示。
从此处开始,本书将在解释编程概念时使用一种新约定(convention)(一种共同认同的方式)。例如,通过print("[想打印的内容]")来介绍如何使用print函数。
新约定中结合使用了Python代码和方括号,方括号中的描述用来解释编程概念。当给出类似示例时,除了方括号及其中的内容之外,其他所有都是有效的Python代码。方括号中的内容隐含了你应该使用何种代码进行替换。Python语法中也有使用方括号,因此在代码中本该应用方括号的处置将使用两个方括号体现。
调用(call)一个函数,意味着为函数提供执行指令并返回输出所需的输入。函数的每一个输入就是一个参数(parameter)。当你为函数提供参数时,则被称为“函数传参”。
Python中的函数类似于数学函数。如果忘记了代数中的函数,请看下面这个示例:
1 # 请不要运行代码
2
3
4
5 f(x) = x * 2
上面代码中语句左侧定义了一个函数f,接受一个参数x。语句右侧是函数的具体定义,利用(x)中传递的参数进行计算并返回结果(输出)。本例中,函数的值被定义为函数的参数乘以2。
Python和代数均使用如下语法调用函数:函数名。在函数名后加上圆括号即可进行调用,参数放置在圆括号中,以逗号分隔。对于f(x) = x*2这个数学函数,f(2)的值是4,f(10)的值是20。
定义函数
在Python中创建一个函数,需要选择函数名,并定义其参数、行为和返回值。下面是定义函数的语法:1 # 请不要执行代码
2
3
4
5 def [函数名]([参数]):
6 [函数定义]
数学函数f(x) = x * 2在Python中应该表示如下:
1 # http://tinyurl.com/j9dctwl
2
3
4 def f(x):
5 return x * 2
关键字def告诉Python操作者正在定义一个函数。在def关键字后面,指定函数的名称,名称选择遵循与变量名相同的规则。按惯例,函数名不应使用大写字母,单词用下划线分隔:like_this。
命名函数之后,在名称后加上一对圆括号,圆括号中则是希望函数接受的参数。
在圆括号之后加入冒号,然后换行并缩进4个空格符(和其他复合语句一样)。冒号之后所有缩进4个空格符的代码,就是函数的定义。本例中,函数的定义仅有一行,即return x*2。关键字return指定了调用函数时输出的值,我们称之为函数的返回值。
在Python中,可以使用语法“函数名”来调用一个函数。以下就是以2作为参数调用上述示例中函数f的示例:
1 # http://tinyurl.com/zheas3d3
4 # 接上一个示例
5
6
7
8 f(2)
控制台没有打印任何输出。你可以将函数的输出保存在一个变量中,然后将其传给print函数。示例如下:
1 # http://tinyurl.com/gspjcgj
2
3
4 # 接上一个示例
5
6
7
8 result = f(2)
9 print(result)
>> 4
如果后面在程序中有需要使用函数返回值的地方,建议将函数的返回值保存到一个变量中。示例如下:
01 # http://tinyurl.com/znqp8fk
02
03
04 def f(x):
05 return x + 1
07
08 z = f(4)
09
10
11 if z == 5:
12 print("z is 5")
13 else:
14 print("z is not 5")
>> z is 5
函数可以有一个或多个参数,也可以不接受任何参数。如要定义不需要参数的函数,只需要在定义函数时把圆括号内置为空即可:
1 # http://tinyurl.com/htk7tr6
2
3
4 def f():
5 return 1 + 1
6
7
8 result = f()
9 print(result)
>> 2
如要函数要接受多个参数,则必须将圆括号中的参数以逗号相隔:
1 # http://tinyurl.com/gqmkft7
2
3
4 def f(x, y, z):
5 return x + y + z
6
7
8 result = f(1, 2, 3)
9 print(result)
>> 6
最后,函数必须包含return语句。如果函数没有return语句,则会返回None。示例如下:
1 # http://tinyurl.com/j8qyqov
2
3
4 def f():
5 z = 1 + 1
6
7
8 result = f()
9 print(result)
>> None
此书已加入到VIP会员卡,只要购买VIP会员卡即可免费阅读上百本电子书,这张VIP卡除了免费让你读书,还有更多的权益等你来领,往下↓拉
阅读电子书的方法如下:
打开CSDN APP(软件商城搜索“CSDN”即可找到哦)—>登录CSDN账号—>学习—>电子书
注:CSDN APP已经支持全文搜索,通过关键词或者问题搜索可以很快的定位到电子书相关章节,可以快速的帮助你解决问题哦