函数综合案例:ATM系统
系统需要包含以下功能:
- 显示主菜单,主菜单内包含’查询‘,’取款‘,’存款‘,’退出‘四个功能;
- 通过主菜单提示与键盘键入数字,来实现四种功能调用;
- 除调用‘退出‘功能外,调用其他功能完成后,可自动返回主菜单;
- 调用’存取款‘后都应显示余额;
- 初始存款可自定义,每次重新启动是要手动键入用户姓名。
money = 5000
name = input('请输入您的姓名:')
# 定义查询余额函数
def check(flag):
# 传入flag参数的目的是防止每次存取款时显示'查询余额'的标头
if flag:
print('------------查询余额------------')
# 将money转为全局变量
global money
print(f'{name}, 您好,您的余额剩余{money}元')
# 定义存款函数
def deposit(num):
global money
print('------------存款------------')
money += num
check(False)
# 定义取款函数
def withdrawal(num):
global money
print('------------取款------------')
money -= num
check(False)
# 定义主菜单
def menu():
print('------------主菜单------------')
print(f'{name},您好,欢迎来到ATM自助取款机,请选择操作:')
# 通过'\t'完成对齐操作
print('查询余额\t[输入1]')
print('存款\t\t[输入2]')
print('取款\t\t[输入3]')
print('退出\t\t[输入4]')
return int(input('请输入您的选择:'))
# 定义循环
while True:
key = menu()
if key == 1:
check(flag=True)
print('====================')
# 使用continue进入下次循环
continue
elif key == 2:
num1 = int(input('请输入您要存款的金额:'))
deposit(num1)
print('====================')
continue
elif key == 3:
num2 = int(input('请输入您要取款的金额:'))
withdrawal(num2)
print('====================')
continue
elif key == 4:
print(f'{name},您好,欢迎您下次光临!')
# 通过break退出循环
break
else:
print('请输入正确指令。')