一、函数介绍
函数:是组织好的,可重复使用的,用来实现特定功能的代码段。
使用函数的好处是:将功能封装在函数内,可供随时随地重复利用,提高代码的复用性,减少重复代码,提高开发效率
二、函数的定义
def check():
print('欢迎来到黑马程序员!\n请出示您的健康码以及72小时核酸证明')
check()
补充 \n 意思是换行
三、函数的参数
参数作用:在函数运行的时候,接受外部传入的数据。
案例:
# 定义函数,接收1个形式参数,数字类型,表示体温
def check(num):
# 在函数体内进行判断体温
print("欢迎来到黑马程序员!请出示您的健康码以及72小时核酸证明,并配合测量体温!")
if num <= 37.5:
print(f"体温测量中,您的体温是:{num}度,体温正常请进!")
else:
print(f"体温测量中,您的体温是:{num}度,需要隔离!")
# 调用函数,传入实际参数
check(37.6)
四、函数返回值
# 定义一个函数,完成2数相加功能
def add(a, b):
result = a + b
# 通过返回值,将相加的结果返回给调用者
return result
# 返回结果后,还想输出一句话,无法输出来
print("我完事了")
# 函数的返回值,可以通过变量去接收
r = add(5, 6)
print(r)
None类型:None是类型’NoneType’的字面量,用于表示:空的、无意义的
None类型的应用场景
# 无return语句的函数返回值
def say_hi():
print("你好呀")
result = say_hi()
print(f"无返回值函数,返回的内容是:{result}")
print(f"无返回值函数,返回的内容类型是:{type(result)}")
# 主动返回None的函数
def say_hi2():
print("你好呀")
return None
result = say_hi2()
print(f"无返回值函数,返回的内容是:{result}")
print(f"无返回值函数,返回的内容类型是:{type(result)}")
# None用于if判断
def check_age(age):
if age > 18:
return "SUCCESS"
else:
return None
result = check_age(16)
if not result:
# 进入if表示result是None值 也就是False
print("未成年,不可以进入")
# None用于声明无初始内容的变量
name = None
五、函数的说明文档
param用于解释参数 return用于解释返回值
六、函数的嵌套调用
嵌套调用:在一个函数中,调用另外一个函数
执行流程:函数A中执行到调用函数B的语句,会将函数B全部执行完成后,继续执行函数A的剩余内容
七、变量的作用域
变量作用域:指的是变量的作用范围(变量在哪里可用,在哪里不可用)
主要分为2类::
局部变量是定义在函数体内部的变量,即只在函数体内部生效
全局变量是在函数体内、外都能生效的变量
global关键字(可以在函数内部去修改全局变量)
综合案例
money = 500000
name = None
# 要求客户输入姓名
name = input('请输入您的姓名')
# 定义查询函数
def query(show_header):
if show_header:
print('-------查询余额-------')
print(f'{name},您好,您的余额剩余:{money}元')
# 定义取款函数
def get_money(num):
global money
money -= num
print('-------取款-------')
# 调用query函数查询余额
query(False)
# 定义存款函数
def save_money(num):
global money
money += num
print('-------存款-------')
# 调用query函数查询余额
query(False)
def mian():
print('-------主菜单-------')
print(f'{name},您好欢迎来到ATM,请选择操作:')
print('查询余额\t[输入1]')
print('取款\t\t[输入2]')
print('存款\t\t[输入3]') # 通过\t制表符来对齐输出
print('退出\t\t[输入4]')
return input('请输入您的选择:')
# 设置无限循环,确保程序不退出
while True:
keyword_input = mian()
if keyword_input == '1':
query(True)
# 通过continue继续下一次循环,一进来就是回到了主菜单
continue
elif keyword_input == '2':
num = int(input('你想要存多少钱,请输入:'))
save_money(num)
continue
elif keyword_input == '3':
num = int(input('你想要取多少钱,请输入:'))
get_money(num)
continue
else:
print('程序退出')
break