课程:函数

课程:函数
⽬目标
函数的作⽤
函数的使⽤步骤
函数的参数作⽤
函数的返回值作⽤
函数的说明⽂文档
函数嵌套
⼀一. 函数的作⽤

需求:⽤用户到ATM机取钱:
1. 输⼊入密码后显示"选择功能"界⾯面
2. 查询余额后显示"选择功能"界⾯面
3. 取2000钱后显示"选择功能"界⾯面
特点:显示“选择功能”界⾯面需要重复输出给⽤用户,怎么实现?


函数就是将⼀一段具有独⽴立功能的代码块整合到⼀一个整体并命名,在需要的位置调⽤用这个名称即可完成对
应的需求。
函数在开发过程中,可以更更⾼高效的实现代码重⽤用。
⼆. 函数的使⽤步骤

2.1 定义函数

def 函数名(参数):
代码1
代码2
......

2.2 调⽤用函数

    函数名(参数)

注意:
1. 不不同的需求,参数可有可⽆无。
2. 在Python中,函数必须先定义后使⽤用。

2.3 快速体验
需求:复现ATM取钱功能。
1. 搭建整体框架(复现需求)

print('密码正确登录成功')
# 显示"选择功能"界⾯面
print('查询余额完毕')
# 显示"选择功能"界⾯面
print('取了了2000元钱')
# 显示"选择功能"界⾯面

2. 确定“选择功能”界⾯面内容

print('查询余额')
print('存款')
print('取款')

3. 封装"选择功能"
注意:⼀一定是先定义函数,后调⽤用函数。

# 封装ATM机功能选项-- 定义函数
def select_func():
print('-----请选择功能-----')
print('查询余额')
print('存款')
print('取款')
print('-----请选择功能-----')

4. 调⽤用函数
在需要显示“选择功能”函数的位置调⽤用函数。

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)

4.1 应⽤用
需求:制作⼀一个计算器器,计算任意两数字之和,并保存结果。

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 打印图形
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 函数计算
1. 求三个数之和

def sum_num(a, b, c):
return a + b + c
result = sum_num(1, 2, 3)
print(result) # 6

2. 求三个数平均值

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

⼋八. 总结
函数的作⽤用:封装代码,⾼高效的代码重⽤用
函数使⽤用步骤
定义函数

def 函数名():
代码1
代码2
...

调⽤用函数

函数名()

函数的参数:函数调⽤用的时候可以传⼊入真实数据,增⼤大函数的使⽤用的灵活性
形参:函数定义时书写的参数(⾮非真实数据)
实参:函数调⽤用时书写的参数(真实数据)
函数的返回值
作⽤用:函数调⽤用后,返回需要的计算结果
写法

return 表达式

函数的说明⽂文档
作⽤用:保存函数解释说明的信息

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


def 函数名():
代码1
代码2
...


1 函数名()
1 return 表达式
写法

def 函数名():
""" 函数说明⽂文档"""

函数嵌套调⽤用:⼀一个函数内部嵌套调⽤用另外⼀一个函数