目录
函数介绍 函数的定义 函数的参数 函数的返回值 函数的说明文档 函数的嵌套调用 变量的作用域 综合案例
函数介绍
函数:提前写好或者自己定义,可重复使用,用来实现某种特定功能的代码段。
为什么要使用函数?
为了得到一个特定需求、可供重复利用的代码段,提高程序的复用性、减少重复性代码、提高开发效率
使用函数的好处是:
- 将功能封装在函数内,可供随时重复利用
- 提高代码的复用性,减少重复代码,提高开发效率
函数定义
函数的定义:
def 函数名(传入参数):
函数体
return 返回值
函数的调用:
函数名(参数)
案例:
# 练习案例:自动查核酸
# 定义一个函数,函数名任意,
# 要求调用函数后可以输出如下欢迎语
# 欢迎来到xxx!
# 请出示您的健康码以及72小时核酸证明!
# 定义函数
def check():
# 编写函数体输出信息
print("欢迎来到xxx\n请出示您的健康码以及72小时核酸证明!")
# 调用函数
check()
函数的参数
函数的传入参数
传入参数的功能是:在函数进行计算的时候,接受外部调用时提供的数据
基于函数的定义语法
def 函数体 (传入参数):
函数体
return 返回值
可以有如下函数定义:
定义函数
def add(x,y):
result = x + y
print(f"{x}+{y}的结果是:{result}")
调用函数
add(5,6)
- 函数定义中,提供的x和y,成为:形式参数(形参),表示函数声明将要使用2个参数
- 函数调用中,提供的5和6,成为:实际参数(实参),表示函数执行时真正使用的参数值
# 练习案例:升级版自动查核酸
# 定义一个函数,名称任意,并接受一个参数传入“数字类型,表示体温)
# 在函数内进行体温判断(正常范围:小于等于37.5度),并输出如下内容:
# 请出示您的健康码以及72小时核酸证明,并配合测量体温!
# 体温测量中,您的体温是:37.3度,体温正常请进!
# 请出示您的健康码以及72小时核酸证明,并配合测量体温!
# 体温测量中,您的体温是:39.3度,需要隔离!
# 定义函数
def check(x):
print("请出示您的健康码以及72小时核酸证明,并配合测量体温!")
if x > 37.5:
print(f"体温测量中,你的体温是{x},体温异常需隔离")
else:
print(f"体温测量中,你的体温是{x},体温正常,请进入")
# 调用参数
check(37.8)
函数的返回值
定义:返回值就是程序中函数完成事情后,最后给调用者的结果
语法:
def 函数(参数):
函数体
return 返回值
变量 = 函数(参数)
None类型:
如果函数没有使用return语句返回数据,那么函数有返回值吗?
无返回值的函数,实际上就是返回了:None这个字面量
None表示:空的、无实际意义的意思
函数返回的None,就表示,这个函数没有返回什么有意义的内容,返回了空的意思
应用场景:
1.用在函数无返回值上
2.用在if判断上(在if判断中,None等同于False)
3.用于声明无内容的变量上
函数的说明文档
给函数添加说明文档,辅助理解函数的作用
通过多行注释的形式。对函数进行说明解释:
def add(x,y):
"""
add函数可以接收2个参数,进行2数相加
:param x:相加的其中一个数字
:param y:相加的其中另一个数字
:return:返回俩数相加的结果
"""
result = x + y
print(f"俩数相加的结果是:{result}")
return result
add(5,6)
鼠标悬停到调用函数上,会出现函数的说明文档对函数进行解释
函数的嵌套调用
所谓的函数嵌套调用指的是一个函数里面又调用了另外一个函数
按照顺序执行语句
变量的作用域
指的是变量的作用范围
局部变量:
定义:所谓局部变量是定义在函数体内部的变量,即只在函数体内部生效(将变量定义在函数体里面)
作用:在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量
全局变量:
定义:所谓全局变量,指的是在函数体内、外都能生效的变量(将变量定义在函数体外面)
global关键字
使用global关键字,可以将函数内部声明变量为全局变量
综合案例
ATM查询,存款,取款,退出功能
# 定义全局变量money name
money = 500000
name = None
# 要求客户输入姓名
name = input("请输入你的姓名:")
# 定义查询函数
def query(show_header):
if show_header:
print("------查询余额-------")
print(f"{name},您好,你的余额剩余:{money}")
# 定义存款函数
def saving(num):
global money
money += num
print("------存款-------")
print(f"{name},您好,你存款:{num}成功")
# 调用query函数查询余额
query(False)
# 定义取款函数
def get_money(num):
global money
money -= num
print("------取款-------")
print(f"{name},您好,你存款:{num}成功")
# 调用query函数查询余额
query(False)
# 定义主菜单函数
def main():
print("------主菜单-------")
print(f"{name}您好,欢迎操作ATM,请选择操作:")
print("查询余额 [输入1]")
print("存款 [输入2]")
print("取款 [输入3]")
print("退出 [输入4]")
return input("请输入你的选择:")
# 设置无限循环,确保程序不会退出
while True:
keyword_input = main()
if keyword_input == "1":
query(True)
continue
elif keyword_input == "2":
num = int(input("你想要存多少?请输入:"))
saving(num)
continue
elif keyword_input == "3":
num = int(input("你想要取多少?请输入:"))
get_money(num)
continue
else:
print("退出程序")
break