weixin_41496763 2018-06-23 12:16 采纳率: 100%
浏览 1459
已采纳

如何进行存取款及与额操作

模拟ATM

定义账号列表信息

userlist = [
{"name": "zhangsan", "password": 562390, "money": 500},
{"name": "lisi", "password": 123456, "money": 1000},
{"name": "wangwu", "password": 897456, "money": 2000}
]
#验证用户名密码是否匹配
def User_Login(username, pwd):
for i in range(len(userlist)):
if userlist[i]['name'] == username and userlist[i]['password'] == pwd:
return 1

while True:
print("欢迎进入中国银行")
print("1. 登陆", "2. 退出","3. 余额","4. 存款","5. 取款")
key = input("请输入选择:")

根据key进行判断

if key == "1":
    username = input("请输入账户:")
    pwd = input("请输入密码:")
    if UserLogin(username, int(pwd))==1:
        print('登陆成功')

    else:
        print ("登陆失败")
if key == "2":
    break
input("按回车键继续:")

    #已经定义了用户列表,存款及取款的操作能够和输入的用户名相对应,存款及取款能够影响到余额,逻辑不需严谨,只需简单实现出来即可。我是初学者 小白
  • 写回答

2条回答

  • sfz200809242719 2018-06-23 14:42
    关注

    userlist = [

    {"name": "zhangsan", "password": 562390, "money": 500},

    {"name": "lisi", "password": 123456, "money": 1000},

    {"name": "wangwu", "password": 897456, "money": 2000}

    ]

    item = {"a":"存款","b":"取款","c":"余额","d":"注销"}

    #验证用户名密码是否匹配

    def UserLogin(username, pwd):

    for user in userlist:

    if user['name'] == username and user['password'] == pwd:
    return 1

    while True:

    print("欢迎进入中国银行")

    print("1. 登陆 "+"2. 退出")

    key = input("请输入选择:")

    if key == "1":

    username = input("请输入账户:")

    pwd = input("请输入密码:")

    if UserLogin(username, int(pwd))==1:

    print('登陆成功')

    while True:

    for key in sorted(item.keys()):

    print(key+":"+item[key])

    key = input("请输入选择:")

    if key == "a":

    cash = input("请输入要存款的数额:")

    for user in userlist:

    if user["name"] == username:

    user["money"] = user["money"] + int(cash)

    input("存款成功,回车请继续")

    break

    elif (key == "b"):

    while True:

    exitflg = False

    cash = input("请输入要取款的数额:")

    for user in userlist:

    if user["name"] == username:

    if user["money"] < int(cash):

    print("存款额度小于取款额度,请重新输入")
    continue

    user["money"] = user["money"] - int(cash)

    input("取款成功,回车请继续")

    exitflg = True

    break

    if exitflg:

    break

    elif (key == "c"):

    for user in userlist:

    if user["name"] == username:

    print("当前余额:"+str(user["money"]))

    break

    elif (key == "d"):

    break;

    else:

    print("输入错误,请重新输入")

    else:

    print ("登陆失败")

    if key == "2":

    break

    input("按回车键继续:")

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)