Python中的函数
在现实生活中,当我想要将钉子钉进木板里,我会找来锤子帮忙。锤子是一个现成的工具,这个工具我可以在任何需要它的地方使用(如果我拥有一个锤子的话)。在设计编程时,人们也在想,有些工具使用频率非常地高,比如锤子。我们不可能每次都从头开始制作(我需要钉钉子时,我不会从挖铁矿开始),因此,制作一些完成品非常重要,并且这些完成品使用起来要尽可能的简单。
这就是一开始设计函数的想法。
函数分为两个部分——定义内容(制作锤子的过程)和使用内容(使用锤子的方法)。
- 定义内容
def 名称(参数):
实现步骤
def f(a,b):
if a > b:
return a
else
return b
def
是单词define
的缩写,意为定义,表示该部分的代码是实现这个函数的过程。“名称”是这个工具的名字,你可以按照你的想法取,但需要满足标识符的规范(如只能由字母,数字和下划线组成)。“参数”指的是这个工具运行时需要提供的额外材料,如比较两个数的大小时,我们需要提供比较的两个数字。“实现步骤”与其他程序一样,但在实现步骤中,如果有什么需要作为结果返回的,我们可以使用return
关键字返回,例如比较两个数的大小,我想要知道较大的数是哪个,我就可以把较大的数放在return
后面。
- 使用内容
名称(参数)
print(f(1,2)) # 输出的结果为:2 原因是函数的功能为比较两个数的大小,并返回较大值。而提供的1和2中,2较大,则输出的是2
函数的使用比较简单,即名称(参数)。当程序运行结束后,return
返回的内容会用来替代原来函数使用位置的内容。如print(f(1,2))
中,return
返回的2
会替换f(1,2)
进行输出。
def isPrime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
for x in range(100):
if isPrime(x):
print(x)
这是一个较为复杂的例子。例子的上半部分是函数isPrime
的定义内容,它需要一个参数n
。在“实现步骤”中,我们首先判断n<=1
是否成立,若成立,则返回False
。接下来是一个for
语句与range
结合的内容,range
产生一个2~
n
\sqrt{n}
n序列。紧接着,判断n
能否整除该序列中的数字,如果可以的话,那么就返回False
。如果所有的数都不能被整除,那么就返回True
。这段代码其实是判断n
是否为质数。下半部分有一个for
语句组成,对于range
产生的0~99
的序列,我们使用函数isPrime
来判断这些数是否不是质数,如果是,则输出这个数字,否则就不输出。