综合案例: ATM功能设置
• 定义一个全局变量: money ,用来记录银行卡余额(默认 5000000 )
• 定义一个全局变量: name ,用来记录客户姓名(启动程序时输入)
• 定义如下的函数:
①查询余额函数
②存款函数
③取款函数
④主菜单函数
• 要求:
①程序启动后要求输入客户姓名
②查询余额、存款、取款后都会返回主菜单
③存款、取款后,都应显示一下当前余额
④客户选择退出或输入错误,程序会退出,否则一直运行
money = 5000000
name = input("请输入用户名")
def check (show_header):
if show_header: #为后面调用函数,显示余额做准备,选择查询余额才会出现
print("-----------查询余额-----------")
print(f"{name},您好,您余额剩余:{money}元")
def saving (num):
global money #设置全局变量
money +=num
print("-----------存款-----------")
print(f"{name},您好存款{num}元成功")
check(False) #直接调用上述定义函数查询余额
def get_money (num):
global money #设置全局变量
money -=num
print("-----------取款-----------")
print(f"{name},您好,您取款:{num}元成功")
check(False) #直接调用上述定义函数查询余额
def main ():
print("-------------主菜单------------")
print("查询余额\t[输入1]")
print("存款\t\t[输入2]")# 通过\t制表符对齐输出,看出差距,可多用一个\t
print("取款\t\t[输入3]")
print("退出\t\t[输入4]")
return input("请输入您的选择:")#返回输入值
############# 设置无限循环,确保程序不退出
while True:
keyboard_input = main() #将返回值赋值给一个变量
if keyboard_input == "1":
check(True)
continue # 通过continue继续下一次循环,一进来就是回到了主菜单
elif keyboard_input == "2":
num =int(input("请输入你想存多少钱:"))#输入数字,数据类型改变
saving(num)
continue
elif keyboard_input == "3":
num = int(input("请输入你想取多少钱:"))
get_money(num)
continue
else: #客户选择退出或输入错误,程序会退出,否则一直运行
print("结束会话!")
break # 通过break退出循环
遇到的问题和运用的知识点:
①不会设置无限循环,确保程序不退出(通过判断TRUE和False布尔来判断)
②不会设置返回主菜单(只要在主函数里返回值是输入数字,在将结果放在一个变量里,进行比较运算,实现功能)
③不会设置怎么退出程序,但只要满足的数字是“1”,“2”,“3”实现功能,其他的直接结束运行
④忘记了if elif else的用法
⑤全局变量的设置 global money #设置全局变量
money -=num⑥通过continue继续下一次循环,一进来就是回到了主菜单
⑦输入数字的时候,要进行数据类型转换