一. 场景描述案例:模拟银行ATM存款取款
1.模拟3张银行卡,1001,1002,1003,分别设置密码和余额(使用列表嵌套字典的方式); 2.提示用户输入银行卡和密码,遍历每张卡的信息验证是否成功; 3.如果用户输入正确—提示让用户选择取款.存款还是退出,并提示余额多少. 输入错误—重新输入卡号密码; 选择取款—提示输入取款额度,如果超过余额,提示余额不足;否则,在余额上减掉相应金额; 选择存款—输入存款额度,余额加上相应额度,并提示余额多少; 选择退出—重新登录; 4.设置3次输入错误账号密码,提示银行卡已被锁定,程序结束。
二. 实现思路
首先,手动输入三张银行卡(使用列表嵌套字典)。设计登录系统。利用选择结构实现三个业务。三. 代码实现
card1 = {"姓名":"张三","卡号":"1001","密码":"123","余额":"1000"}card2 = {"姓名":"李四","卡号":"1002","密码":"123","余额":"2000"}card3 = {"姓名":"王五","卡号":"1003","密码":"123","余额":"3000"}card4 = {"姓名":"赵六","卡号":"1004","密码":"123","余额":"4000"}cardsList=[card1,card2,card3,card4]msg = 0i = 3while 1:cnum = input("请输入卡号:")cpwd = input("请输入密码:")for card in cardsList:if cnum == card["卡号"] and cpwd == card["密码"]:msg = 1print("恭喜您!",card["姓名"],"验证成功!")if msg == 0:i = i - 1if i > 0:print("验证失败!请重新输入!")print("您还有",str(i),"次机会。")if i == 0:print("您没有登录机会了!")breaktemp = 0if msg == 1:while 1:choice = int(input("请输入要办理的业务(1.存款 2.取款 3.退出):"))if choice == 1:deposit = int(input("请输入您的存款额度:"))for card in cardsList:if cnum == card["卡号"]:card["余额"] = int(card["余额"]) + depositprint("存款完成,您当前卡中余额为:",card["余额"],"元")elif choice == 2:withdrawmoney = int(input("请输入您要取款的金额:"))for card in cardsList:if cnum == card["卡号"]:if withdrawmoney > int(card["余额"]):print("余额不足!")else:card["余额"] = int(card["余额"]) - withdrawmoneyprint("恭喜您取款成功,当前卡中的余额为",card["余额"],"元")elif choice == 3:print("您已经退出!")temp = 1breakelse:print("没有此类相关的业务!")if temp == 1:break