一、函数基础
1. 函数定义
组织好的、可重复使用的、实现特定功能的代码段,Python内置函数:len()、print()、input()等。
2. 核心好处
提高代码复用性,减少重复代码,提升开发效率。
二、函数的定义与调用
1. 定义语法
cpp
def 函数名(传入参数):
函数体
return 返回值
-
参数:可选,无参数则留空
-
返回值:可选,无返回值可省略
return
2. 调用语法
cpp
函数名(实际参数)
3. 注意事项
-
函数先定义,后调用
-
严格遵守缩进规则
4. 基础案例:自动查核酸
cpp
# 定义函数
def check_nucleic_acid():
print("欢迎到访!")
print("请出示您的健康码以及72小时核酸证明!")
# 调用函数
check_nucleic_acid()
三、函数的参数
1. 作用
函数运行时,接收外部传入的数据,让函数功能更灵活。
2. 形参与实参
-
形参:函数定义时的参数(形式上的参数)
-
实参:函数调用时的参数(实际传入的数值)
3. 语法示例
cpp
# 定义:x和y是形参
def add(x, y):
result = x + y
print(f"{x}+{y}的结果是:{result}")
# 调用:5和6是实参
add(5, 6) # 结果:5+6的结果是:11
4. 注意事项
-
参数数量不限,用逗号分隔
-
实参与形参一一对应
5. 案例:升级版查核酸(传入体温参数)
cpp
def check_nucleic_acid(temperature):
print("欢迎到访!请出示您的健康码以及72小时核酸证明,并配合测量体温!")
if temperature <= 37.5:
print(f"体温测量中,您的体温是:{temperature}度,体温正常请进!")
else:
print(f"体温测量中,您的体温是:{temperature}度,需要隔离!")
# 调用
check_nucleic_acid(37.3)
check_nucleic_acid(39.3)
四、函数的返回值
1. 定义
函数执行完成后,返回给调用者的结果,通过return关键字实现。
2. 语法示例
cpp
def add(x, y):
result = x + y
return result # 返回计算结果
# 接收返回值
res = add(3, 4)
print(res) # 结果:7
3. 注意事项
-
return后代码不再执行 -
无
return的函数,默认返回None
4. None类型
-
类型:
NoneType,表示空、无意义 -
触发场景:函数无
return/主动return None -
应用场景:if判断(
None等同于False)、定义空变量
cpp
# 案例1:无返回值函数
def say_hello():
print("Hello..")
res = say_hello()
print(res) # 结果:None
# 案例2:None用于if判断
def check_age(age):
if age > 18:
return "SUCCESS"
return None
result = check_age(5)
if not result:
print("未成年,不可进入") # 结果:未成年,不可进入
# 案例3:定义空变量
name = None
五、函数说明文档
1. 作用
解释函数功能,方便他人/自己理解代码,鼠标悬停可查看。
2. 定义语法
cpp
def 函数名(参数):
"""
函数功能说明
:param 参数1: 参数1的解释
:param 参数2: 参数2的解释
:return: 返回值的解释
"""
函数体
return 返回值
3. 示例
cpp
def add(x, y):
"""
两数相加的功能
:param x: 相加的第一个数字
:param y: 相加的第二个数字
:return: 两个数字相加的结果
"""
return x + y
# 鼠标悬停add()可查看说明文档
add(1,2)
六、函数的嵌套调用
1. 定义
在一个函数内部,调用另一个函数。
2. 执行流程
执行到调用语句时,先完成被调用函数的全部执行,再回到原函数继续执行。
3. 示例
cpp
def func_b():
print("---2---")
def func_a():
print("---1---")
func_b() # 嵌套调用func_b
print("---3---")
# 调用
func_a()
# 执行结果:
# ---1---
# ---2---
# ---3---
七、变量的作用域
变量的生效范围,分为局部变量 和全局变量。
1. 局部变量
-
定义:函数体内部定义的变量
-
作用域:仅函数内部可用,函数调用结束后自动销毁
-
示例
cppdef testA(): num = 100 print(num) # 正常执行:100 testA() # print(num) # 报错:name 'num' is not defined
2. 全局变量
-
定义:函数体外部定义的变量
-
作用域:函数内、外均可使用
-
示例
cppnum = 100 # 全局变量 def testA(): print(num) # 内部访问:100 def testB(): print(num) # 内部访问:100 testA() testB() print(num) # 外部访问:100
3. global关键字
-
作用:在函数内部声明变量为全局变量,实现对全局变量的修改
-
示例
cppnum = 100 def testB(): global num # 声明num为全局变量 num = 200 print(num) # 结果:200 testB() print(num) # 结果:200(全局变量被修改)
八、综合案例:简易ATM系统
cpp
# 定义全局变量
money = 5000000
name = input("请输入您的姓名:")
# 定义查询余额函数
def check_balance():
print(f"-------查询余额---------")
print(f"{name},您好,您的余额剩余:{money}元")
# 定义存款函数
def deposit():
print(f"---------存款---------")
depo = int(input("请输入存款金额:"))
global money # 声明修改全局变量
money += depo
print(f"{name},您好,您存款{depo}元成功")
print(f"{name},您好,您的余额剩余:{money}元")
# 定义取款函数
def withdraw():
print(f"---------取款---------")
withd = int(input("请输入取款金额:"))
global money
if withd > money:
print("余额不足,取款失败")
else:
money -= withd
print(f"{name},您好,您取款{withd}元成功")
print(f"{name},您好,您的余额剩余:{money}元")
# 定义主菜单函数
def main_menu():
while True:
print(f"--------主菜单----------")
print(f"{name},您好,欢迎使用ATM自助服务。请选择操作:")
print("查询余额[输入1]")
print("存款 [输入2]")
print("取款 [输入3]")
print("退出 [输入4]")
choice = input("请输入您的选择:")
if choice == "1":
check_balance()
elif choice == "2":
deposit()
elif choice == "3":
withdraw()
elif choice == "4":
print("程序退出,感谢使用!")
break
else:
print("输入错误,请重新选择!")
# 调用主菜单
main_menu()