python循环案例:模拟银行ATM存款取款

案例:模拟银行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

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值