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

posted @ 2023-04-05 15:23  胖豆芽  阅读(36)  评论(0编辑  收藏  举报