python之极简ATM系统示例


"""
用户可登陆系统
输错三次锁定账号

用户可以创建新的用户名密码
新用户初始账户设为0
新用户可直接登陆系统

用户登陆成功后可以选择业务类型
用户数据可以根据业务修改

输入Q随时退出
"""
name_list = ["zhangdada","wangxiaoxiao","lizhongzhong"]
pwd_list = ["123","456","789"]
info = ["1:存款","2:取款","3:转账","4:查询"]

# 用户账户数据
bank = {
    "zhangdada":{
        "name":"zhangdada",
        "money":10000,
    },
    "lizhongzhong":{
        "name":"lizhongzhong",
        "money":45000,
    },
    "wangxiaoxiao":{
        "name":"wangxiaoxiao",
        "money":200000,
    },
}

# 程序主循环
tag = True
while True:

    print("*"*20)
    print("欢迎使用本系统\n用户登陆请输入1\n新用户注册请输入2\n退出请输入Q")
    print("*"*20)
    choose = input("请选择类型:").strip()

    if choose == "Q": # 退出行
        tag = False
        print("☺欢迎下次使用☺")
        break

#   新用户注册
    if choose == "2":
        while True:
            name_new = input("请创建用户名:").strip()
            if name_new  in name_list:
                print("用户名已存在请重新输入!")
                continue
            else:
                pwd_new = input("请设置密码:").strip()
                if pwd_new in pwd_list:
                    print("密码重复,请重新来过!")
                    continue
                else:
                    name_list.append(name_new)
                    pwd_list.append(pwd_new)
                    bank[name_new] = {}
                    bank[name_new]["name"] = name_new
                    bank[name_new]["money"] = 0
                    print("——"*15)
                    print("用户创建成功!")
                    print("——" * 15)
que
= input("直接登入请输入#").strip() # 直接登入选项 if que == "#": choose = "1" name = name_new pwd = pwd_new break elif choose == "1" : break else: print("输入错误,请重新来过!") # 登陆部分和业务处理 i = 0 while tag: name = input("请输入你的用户名:").strip() pwd = input("请输入你的密码:").strip() if name == "Q" or pwd == "Q": # 退出条件 tag = False print("☺欢迎下次使用☺") break if i >= 2: # 输入次数判断 print("您今日的次数已用完,账户锁定!") break if name not in name_list or pwd not in pwd_list: # 登录逻辑 i += 1 print("用户名或者密码错误!") continue else: print("——" * 15) for i in info: # 业务逻辑展示 print("****%s*****" % i) while tag: # 业务逻辑循环 print("——"*15) print("——"*15) yewu = input("请输入你要办理的业务对应数字:").strip() print("——" * 15) print("——" * 15) if yewu == "Q": # 退出条件 tag = False break if yewu == "2": # 取款操作 number_1 = input("请输入取款金额:").strip() if number_1 < str(bank[name]["money"]): print("余额不足!") continue else: print("您已取款:1000元") bank[name]["money"] -= int(number_1) elif yewu == "1": # 存款操作 number_2 = input("请输入存款金额:").strip() bank[name]["money"] += int(number_2) print(" 您当前账户余额为:%s" % bank[name]["money"]) elif yewu == "3": # 转账操作 name_zhuanzhang = input("请输入转账的用户名:").strip() if name_zhuanzhang not in name_list: print("该用户不存在,请重新输入!") else: print("请确认用户%s" % name_zhuanzhang) money = input("请输入转账金额:").strip() bank[name]["money"] -= int(money) bank[name_zhuanzhang]["money"] += int(money) print("转账成功!") print("您当前账户余额为:%s" % bank[name]["money"]) elif yewu == "4": # 查询操作 print("您当前账户余额为:%s" % bank[name]["money"]) else: print("输入错误,请从新输入")

 

posted @ 2021-03-17 15:05  猫咪也会码代码  阅读(368)  评论(0)    收藏  举报