⼀. 函数的作⽤
需求:⽤户到ATM机取钱:
- 输⼊密码后显示"选择功能"界⾯
- 查询余额后显示"选择功能"界⾯
- 取2000钱后显示"选择功能"界⾯
特点:显示“选择功能”界⾯需要重复输出给⽤户,怎么实现?
函数就是将⼀段具有独⽴功能的代码块整合到⼀个整体并命名,在需要的位置调⽤这个名称即可完成对应的需求。
函数在开发过程中,可以更⾼效的实现代码重⽤。
⼆. 函数的使⽤步骤
2.1 定义函数
def 函数名(参数):
代码1
代码2
......
2.2 调⽤函数
调用格式
函数名(参数)
注意:
- 不同的需求,参数可有可⽆。
- 在Python中,函数必须先定义后使⽤。
2.3 快速体验
需求:复现ATM取钱功能。
- 搭建整体框架(复现需求)
print('密码正确登录成功')
# 显示"选择功能"界⾯
print('查询余额完毕')
# 显示"选择功能"界⾯
print('取了2000元钱')
# 显示"选择功能"界⾯
- 确定“选择功能”界⾯内容
print('查询余额')
print('存款')
print('取款')
- 封装"选择功能"
注意:⼀定是先定义函数,后调⽤函数。
# 封装ATM机功能选项 -- 定义函数
def select_func():
print('-----请选择功能-----')
print('查询余额')
print('存款')
print('取款')
print('-----请选择功能-----')
- 调⽤函数
在需要显示“选择功能”函数的位置调⽤函数。
print('密码正确登录成功')
# 显示"选择功能"界⾯ -- 调⽤函数
select_func()
print('查询余额完毕')
# 显示"选择功能"界⾯ -- 调⽤函数
select_func()
print('取了2000元钱')
# 显示"选择功能"界⾯ -- 调⽤函数
select_func()
三.函数的参数作⽤
思考:完成需求如下:⼀个函数完成两个数1和2的加法运算,如何书写程序?
# 定义函数
def add_num1():
result = 1 + 2
print(result)
# 调⽤函数
add_num1()
思考:上述add_num1函数只能完成数字1和2的加法运算,如果想要这个函数变得更灵活,可以计算任何⽤户指定的两个数字的和,如何书写程序?
分析:⽤户要在调⽤函数的时候指定具体数字,那么在定义函数的时候就需要接收⽤户指定的数字。函数调⽤时候指定的数字和定义函数时候接收的数字即是函数的参数。
# 定义函数时同时定义了接收⽤户数据的参数a和b,a和b是形参
def add_num2(a, b):
result = a + b
print(result)
# 调⽤函数时传⼊了真实的数据10 和 20,真实数据为实参
add_num2(10, 20)
四.函数的返回值作⽤
例如:我们去超市购物,⽐如买烟,给钱之后,是不是售货员会返回给我们烟这个商品,在函数中,如果需要返回结果给⽤户需要使⽤函数返回值。
def buy():
return '烟'
# 使⽤变量保存函数返回值
goods = buy()
print(goods)
应⽤
需求:制作⼀个计算器,计算任意两数字之和,并保存结果
def sum_num(a, b):
return a + b
# ⽤result变量保存函数返回值
result = sum_num(1, 2)
print(result)
五.函数的说明⽂档
思考:定义⼀个函数后,程序员如何书写程序能够快速提示这个函数的作⽤?
答:注释
思考:如果代码多,我们是不是需要在很多代码中找到这个函数定义的位置才能看到注释?如果想更⽅便的查看函数的作⽤怎么办?
答:函数的说明⽂档
函数的说明⽂档也叫函数的⽂档说明。
5.1 语法
- 定义函数的说明⽂档
def 函数名(参数):
""" 说明⽂档的位置 """
代码
......
- 查看函数的说明⽂档
help(函数名)
5.2 快速体验
def sum_num(a, b):
""" 求和函数 """
return a + b
help(sum_num)
六.函数嵌套调⽤
所谓函数嵌套调⽤指的是⼀个函数⾥⾯⼜调⽤了另外⼀个函数。
- 示例
def testB():
print('---- testB start----')
print('这⾥是testB函数执⾏的代码...(省略)...')
print('---- testB end----')
def testA():
print('---- testA start----')
testB()
print('---- testA end----')
testA()
结果
- 执⾏流程
如果函数A中,调⽤了另外⼀个函数B,那么先把函数B中的任务都执⾏完毕之后才会回到上次函数A执⾏的位置。
七. 函数应⽤
7.1 打印图形
- 打印⼀条横线
def print_line():
print('-' * 20)
print_line()
2. 打印多条横线
def print_line():
print('-' * 20)
def print_lines(num):
i = 0
while i < num:
print_line()
i += 1
print_lines(5)
7.2 函数计算
- 求三个数之和
def sum_num(a, b, c):
return a + b + c
result = sum_num(1, 2, 3)
print(result) # 6
- 求三个数平均值
def average_num(a, b, c):
sumResult = sum_num(a, b, c)
return sumResult / 3
result = average_num(1, 2, 3)
print(result) # 2.0