初识函数
函数是组织好的,可重复使用的,用来实现单一或相关功能的代码块。
其实,想快速理解函数只要抓住两个词就可以了,一个是:复用,另一个是单功能。复用意味着函数内的代码会被多次运行,单功能表示函数一般来说只提供一种功能。
比如,判定一个数是否是偶数,可以封装成一个函数:
def judge_even_number(number):
if number%2 == 0:
print("It is a even number.")
else:
print("It is not a even number.")
其中,def是函数开始的标志,judge_even_number是函数名,number是这个函数唯一的参数,剩下都是函数中的代码块。这个函数接受一个参数number,然后对这个数进行判断,最后打印出判定结果。
函数的基本形式
函数主要由:函数名,参数和代码块三个部分组成。它的基本形式如下:
def 函数名(参数):
代码块
# 举例
def hello(name):
print("Hello, {person}!".format(person=name))
format()函数用于格式化输出,在
print("Hello, {person}!".format(person=name))
中,需要用name
的值来替换{person}
,假如name
的值是world
,那么输出就是:Hello, world!
函数的目的是完成某个单一的功能,起一个能精确地描述函数功能的函数名就显得尤为重要。比如前文的judge_even_number,光看这个函数就能大致明白它是用来判定函数是否是偶数的。
参数是函数完成功能所必须要的数据。有的功能并不需要外部数据就能完成,因此也不需要参数。有的功能需要很多参数。
代码块内是复用的单元,里面有函数为了实现某种功能而必备的变量、逻辑结构和返回值。变量主要是各种数字、字符、列表等,逻辑结构主要是顺序结构、分支结构和循环结构,返回值就是下面要讲的内容。
函数的返回值
一般来说,函数在实现某种功能性的操作之后,会返回运行之后的结果,这个结果就是返回值。函数想要返回值,需要使用到return语句。比如:计算一个人的身高体重指数。
def calculate_healthy_index(height, weight):
index = weight/height**2
if index < 18.5:
return "偏瘦"
elif index < 24 and index >= 18.5:
return "正常"
elif index < 27 and index >= 24:
return "偏胖"
elif index >= 27:
return "肥胖"
这个函数有四种返回值,分别对应四种不同的判定结果。对于一个函数而言,实际上只能执行一个返回语句。因为一旦执行完return语句,便立即终止函数内所有代码的执行。如果这个return语句在函数内的循环中,执行return语句实际上也有跳出循环的效果。
# 找出第一个低于60的数字
scores = [89, 75, 83, 66, 92, 97,78, 57, 84]
def find_sixty_below(list)
for index in list:
if list[index] < 60:
return list[index]
上面的return语句执行完毕后,返回第一个低于60的数字57,之后函数执行完毕。
有的函数没有返回值,此时,函数的返回值是以其它形式展现的,比如使用print()
函数来输出,或者依靠改变全局变量来实现。
函数的调用
函数的调用,应该遵循先定义后调用的原则。即:先让python解释器知道有这么个函数,然后在代码中写出函数名+括号+参数来调用函数。
当一个函数有返回值的时候,可以将返回值直接赋值给一个变量,python会根据返回值的类型决定被赋值变量的类型。
>>> def add(value1, value2):
return value1 + value2
>>> output = add(1, 1)
>>> print(output)
2
>>> output = add('Hello', 'World')
>>> print(output)
HelloWorld
上面的例子中,output的变量类型会根据输入数据类型的变化而变化。
总结
- 函数有两个特征:单功能、复用
- 函数有三个部分,函数名、参数和代码块
- 返回值需要使用return语句实现
- 调用函数的格式:函数名+括号+参数
思考
# 1. 编写一个函数,该函数的功能是判定一个数是否是质数。
# 如果这个数是质数,则返回1,如果不是质数,则返回0
# 2. 如果2是第一个质数,3是第二个质数,5是第三个质数,
# 调用上面的函数找到第100个质数
# 判断质数的函数
def judge_prime_number(number):
for index in range(2,number):
if number%index == 0 and index != number:
return 0
break
index = index + 1
else:
return 1
# 找到第100个质数
num = 1
number = 2
while num <= 100:
num = num + judge_prime_number(number)
number = number + 1
print(number-1)
扫一扫这个二维码,关注公众号:聪哥python,获取最新python3基础教程
网友评论