函数:是组织好的,可重复使用的 ,用来实现特定功能的代码段
使用函数的原因:
为了得到一个针对特定需求,可供重复利用的代码段提高程序的复用性,减少重复性代码,提高开发效率
语法格式:
函数的调用
函数名(参数)
注意事项:
函数传入参数的功能
在函数进行计算的时候,接受外部(调用时)提供的数据
def add(x,y):
result = x + y
print((f"{x}+{y}的计算结果是:{result}"))
# 调用函数
add(5,6)
add(1,4)
"""
运行结果:
5+6的计算结果是:11
1+4的计算结果是:5
"""
语法解析
# 函数定义
def select(tmp):
print("欢迎来到黑马程序员!请出示您的健康码以及72小时核酸证明,并配合测量体温!")
if tmp <= 37.5:
print(f"体温测量中,您的体温是:{tmp}度,体温正常请进!")
else:
print(f"体温测量中,您的体温是:{tmp}度,需要隔离!")
# 函数调用
select(37.3)
select(39.3)
返回值定义:
就是程序中函数完成事情后,最后给调用者的结果
语法格式:
# 定义加法函数
def add(x,y):
result = x + y
return result
# 函数的返回值,可以通过变量去接收
r = add(2,5)
print(r)
# 运行结果:
# 7
如果函数没有使用return语句返回数据,则函数也是由返回值的
即:None,类型是:
表示这个函数没有返回什么有意义的内容
None类型的应用场景
def check(age):
if age >18:
return "SUCCESS"
else:
return None
result = check(18)
if not result:
# 进入if,表示result值为None,也就是False
print("未成年")
函数是纯代码,要想理解函数的含义,需要去一行行阅读理解代码,效率较低
可以给函数添加说明文档,辅助理解函数的作用
语法格式:
# 定义函数
def add(x,y):
"""
add函数可以接收2个参数,进行2个数相加的功能
:param x:形参x表示相加的其中一个数字
:param y:形参y表示相加的另一个数字
:return:返回值是两个数相加的结果
"""
result = x +y
print(f"两个数相减的结果是:{result}")
return result
# 调用函数
add(2,5)
在PyCharm编写代码时,可以通过鼠标悬停,查看调用函数的说明文档,同时,通过输入三个引号,也可以快速出现相应格式
即一个函数里面又调用了另一个函数
def func_2():
print("---2---")
def func_1():
print("---1---")
func_2()
print("---3---")
# 调用函数
func_1()
"""
运行结果:
---1---
---2---
---3---
"""
嵌套调用的执行流程
局部变量就是定义在函数体内部的变量,即只在函数体内部生效,临时保存数据
当函数调用完成后,则销毁局部变量
def test():
# num变量在函数体内,称为局部变量
num = 100
print(num)
# test()
# print(num)
# 局部变量在出了函数体后,就不能在使用
# 输出结果:
# NameError: name 'num' is not defined. Did you mean: 'sum'?
全局变量就是在函数体内、外都能生效的变量
num = 100
def test():
print(f"test:{num}")
test()
print(num)
"""
运行结果:
test:100
100
"""
如果函数内部的局部变量和函数外部的全局变量的变量名相同,则在调用函数时,是以函数内的局部变量为准
num = 100
def test():
num = 200
print(f"test:{num}")
test()
print(num)
"""
运行结果:
test:200
100
"""
使用global关键字,可以在函数内部声明变量为全局变量,做到可以在函数内部修改全局变量的效果
num = 100
def test():
global num
num = 200
print(f"test:{num}")
test()
print(num)
"""
运行结果:
test:200
200
"""
# 定义全局变量
money = 5000000
name = None
# 要求客户输入姓名
name = input("请输入您的姓名:")
# 查询函数
def query():
print("------------查询余额-------------")
print(f"{name},您好,您的余额剩余:{money}元")
# 存款函数
def save(num):
global money
money += num
print("-----------存款----------")
print(f"{name},您好,您存款{num}成功")
print(f"{name},您好,您的余额剩余:{money}元")
# 取款函数
def get_money(num):
global money
money -= num
print("-----------取款----------")
print(f"{name},您好,您取款{num}成功")
print(f"{name},您好,您的余额剩余:{money}元")
# 主菜单函数
def main():
print("---------------主菜单----------------")
print(f"{name},您好,欢迎来到黑马银行ATM,请选择操作:")
print("查询余额\t[输入1]")
print("存款\t\t[输入2]")
print("取款\t\t[输入3]")
print("退出\t\t[输入4]")
return input("请输入您的选择:")
# 设置无限循环,确保程序不退出
while True:
get_input = main()
if get_input == "1":
query()
continue # 通过continue继续下一次循环,一进来就是回到主菜单
elif get_input == "2":
num = int(input("请输入您要存入的金额:"))
save(num)
continue
elif get_input == "3":
num = int(input("请输入您要取出的金额:"))
get_money(num)
else:
print("程序已经退出!")
break # 通过break退出while循环