ATM机 存款取款后的剩余金额 需要在函数中声明是全局变量
''' ATM 当前的剩余金额是个不断变化的过程 需要在存款 取款函数中声明为全局变量
自己写的 ''' money_now=5000 name="fqs" def look_money_now(): print(f"{name}您的余额是{money_now}") def money_up(): money_up=1 #必须声明全局变量 否则无法更改最上面声明的money_now # 报错 UnboundLocalError: local variable 'money_now' referenced before assignment global money_now money_now=money_now+money_up print(f"{name}您当前的余额为{money_now}") def money_down(): money_down=1 global money_now money_now=money_now-money_down print(f"{name}您当前的余额为{money_now}") input_number=input("请输入您的目的,1代表查询余额,2代表存钱,3代表取钱\t") int_num=int(input_number) print(type(int_num)) if int_num == 1: look_money_now() elif int_num == 2: money_up() elif int_num == 3: money_down() else: print("number非法,仅支持1,2,3")
优化后 加入了传参
''' ATM 进ATM的人是变量 存取款的金额是变量 规则1 每次进入或者操作后都显示主页面 规则2 主页面显示UI ---------某某,欢迎来到ATM----- 如果要查询余额 请输入1 如果要存钱 请输入2 如果要取钱 请输入3 如果要退出ATM 请输入4 规则3 -----------某某,您的剩余金额------------- 某某金额 规则4 存钱和取钱页面不显示横幅 仅显示 某人的剩余金额是某某 ''' money_now=5000 #不定义具体是谁 用None 占一个位置 name=None name = input("请输入您的名字:") def look_money_now(is_show): if is_show : print(f"-------------{name}的余额---------------") print(f"{name}您的余额是{money_now}") def money_up(money_up_int): #必须声明全局变量 否则无法更改最上面声明的money_now # 报错 UnboundLocalError: local variable 'money_now' referenced before assignment global money_now money_now=money_now+money_up_int look_money_now(False) def money_down(money_down_int): global money_now money_now=money_now-money_down_int look_money_now(False) def main(): print(f"---------{name}欢迎来到ATM------------") print("输入1,显示余额") print("输入2,存款") print("输入3,取款") print("输入4,退出") while True: main() result = int(input("请输入您的选择:")) if result == 1: look_money_now(True) continue elif result == 2: money_up_int = int(input("您要存多少钱:")) money_up(money_up_int) continue elif result == 3: money_down_int = int(input("您要取多少钱:")) money_down(money_down_int) continue else: print("退出ATM") break
请输入您的名字:fqs
---------fqs欢迎来到ATM------------
输入1,显示余额
输入2,存款
输入3,取款
输入4,退出
请输入您的选择:1
-------------fqs的余额---------------
fqs您的余额是5000
---------fqs欢迎来到ATM------------
输入1,显示余额
输入2,存款
输入3,取款
输入4,退出
请输入您的选择:2
您要存多少钱:200
fqs您的余额是5200
---------fqs欢迎来到ATM------------
输入1,显示余额
输入2,存款
输入3,取款
输入4,退出
请输入您的选择:3
您要取多少钱200
fqs您的余额是5000
---------fqs欢迎来到ATM------------
输入1,显示余额
输入2,存款
输入3,取款
输入4,退出
请输入您的选择:4
退出ATM