案例:模拟银行ATM存款取款
1.模拟3张银行卡,1001,1002,1003,分别设置密码和余额(使用列表嵌套字典的方式);
2.提示用户输入银行卡和密码,遍历每张卡的信息验证是否成功;
3.如果用户输入正确---提示让用户选择取款.存款还是退出,并提示余额多少. 输入错误---重新输入卡号密码;
选择取款---提示输入取款额度,如果超过余额,提示余额不足;否则,在余额上减掉相应金额;
选择存款---输入存款额度,余额加上相应额度,并提示余额多少;
选择退出---重新登录;
4.设置3次输入错误账号密码,提示银行卡已被锁定,程序结束。
# 定义一个包含三个字典的列表,每个字典表示一张银行卡,包括卡号、密码和余额
lista = [{"银行卡号":"1001","银行卡密码":"123456","银行卡余额":9999},
{"银行卡号":"1002","银行卡密码":"234567","银行卡余额":8888},
{"银行卡号":"1003","银行卡密码":"345678","银行卡余额":7777}]
# 初始化一个变量a,用于记录用户登录失败的次数
a = 0
# 无限循环,直到用户输入正确的银行卡号和密码或者登录失败次数达到三次
while True:
# 提示用户输入银行卡号和密码
bankNum = input("请输入银行卡号码:")
bankPassword = input("请输入银行卡密码:")
# 遍历银行卡列表,比较银行卡号和密码是否正确
for dictx in lista:
if bankNum == dictx["银行卡号"] and bankPassword == dictx["银行卡密码"]:
# 如果用户输入成功,提示用户选择操作
while True:
action = int(input("请您选择操作:1.取款 2.存款 3.退出:"))
# 取款操作
if action == 1:
amount = int(input("请输入取款金额:"))
if amount > dictx["银行卡余额"]:
print("余额不足!")
else:
dictx["银行卡余额"] -= amount
print("取款成功余额为:",dictx["银行卡余额"])
break
# 存款操作
elif action == 2:
amount = int(input("请输入存款金额:"))
dictx["银行卡余额"] += amount
print("存款成功余额为:",dictx["银行卡余额"])
break
# 退出操作
elif action == 3:
break
else:
print("输入有误,请重新选择!")
break
else:
# 如果用户输入失败,增加失败次数a,并提示用户重新输入卡号密码
a += 1
print("请重新输入卡号密码!")
# 如果失败次数达到三次,锁定用户账号
if a >= 3:
print("您的账号已经被锁定!")
break
cards = [
{"银行卡号":"1001","银行卡密码":"123456","银行卡余额":9999},
{"银行卡号":"1002","银行卡密码":"234567","银行卡余额":8888},
{"银行卡号":"1003","银行卡密码":"345678","银行卡余额":7777}
]
count=0 #记录输入错误的次数
while True:
# #提示用户输入银行卡号和密码
bankNum = input("请输入银行卡号码:")
bankPassword = input("请输入银行卡密码:")
msg = 0 #记录登录状态 0 失败 1 成功
for card in cards:
if bankNum == card["银行卡号"] and bankPassword == card["银行卡密码"]:
msg = 1
print("您输入的卡号与密码校验成功!")
if msg == 0: # 在for循环外面 执行,因为for 循环会遍历3次,把三个卡号密码都遍历。如果写在里面会出现3次结果
count += 1
if count == 3:
print("您已经连续3次输入错误,银行卡被锁定!")
break
else:
print("验证失败!您已经连续",count,"次输入错误,还有",3-count,"次机会!")
continue
# 银行业务
while True:
choice = input("请您选择操作:1.取款 2.存款 3.退出:")
if choice == "1":
# 进行取款操作
money = int(input("请输入您要取款的金额:"))
for card in cards:
if money <= card["银行卡余额"]:
card["银行卡余额"] -= money
action1 = 1
print("取款成功,您的账户剩余",card["银行卡余额"],"元。")
break
else:
print("余额不足。")
break
elif choice == "2":
# 进行存款操作
money = int(input("请输入您要存款的金额:"))
for card in cards:
card["银行卡余额"] += money
print("存款成功,您的账户存款为",card["银行卡余额"],"元。")
break
elif choice == "3":
# 进行退出操作
print("您已经成功退出!")
break
else:
print("输入错误!")
continue