用python模仿自助存取款的小游戏

	学了判断和循环的,就要用这写个小游戏,虽然简单,但也是自己的劳动成果吧。

不多说,直接上代码了。

##只用了循环和判断语句
##带有无卡存款功能
##存款的金额必须是50的整数倍
##取款的金额上限为10000,必须是100的整数倍,到10000后就无法取款
##如果卡余额不足10000,则取款上限是卡的余额,可取金额是100的整数倍
##存取款加一起的操作最高可操作5次,5次后就不能进行存取操作
##进入系统后密码输入次数最多为5次,如果5次全错,就自动退出
##进入系统修改密码的次数限定为三次,修改密码的验证次数为俩次
##只有两次输入的密码一样,才判定修改密码成功
##如果第三次修改密码失败,则直接判定为修改密码失败,就自动退出
##如果密码修改了3次,存取款次数达到了5次,也会自动退出
xinhao=input("请按1进入无卡存款,按别的任意键表示已经插入银行卡:")
if xinhao!="1" and len(xinhao)>=1:
    xinhao=2
while xinhao=="1":
    kahao1=input("请输入需要存款的16位银行卡号,或者按1退出:")
    if kahao1=="1":
        break
    kahao2=input("请在次输入16位银行卡号:")
    while kahao1 != kahao2:
        kahao1 = input("请输入需要存款的银行卡号,或者按1退出:")
        if kahao1=="1":
            break
        kahao2 = input("请再次输入银行卡号:")
    if kahao1==kahao2:
        print("你将对%s的账户进行存款"%kahao1)
        print("注意:单张纸币的面额必须是50元或是100元")
        wukack=input("确认请按1,按别的数字取消:")
        if wukack != "1" and len(wukack)>=1:
            wukck=2
        while wukack=="1":
            print("请把你要存款的钞票放入存款入口")
            ck1=int(input("你本次存入的金额是:"))
            if ck1%50 == 0:
                print("你本次的存款金额为%d"%ck1)
                ckqr=input("确认请按1,按别的数字取消:")
                if ckqr != "1" and len(ckqr)>=1:
                    ckqr=2
                if ckqr=="1":
                    print("你已成功存款%d元:"%ck1)
                    print("感谢你的使用")
                    break
                else:
                    print("请取回你的钞票")
                    zcck=input("退出请按0,按别的任意键继续存款:")
                    if zcck=="0":
                        break
                    else:
                        pass
            else:
                print("请取回不是50或是100面额的钞票")
        else:
            pass
    break
if xinhao == 2:
    yongfuxinxi = {"姓名":"张三","卡号":"1234567890","密码":"256494","余额":"15420"}
    yongfu = yongfuxinxi.get("姓名")
    print("持卡人姓名是%s"%yongfu)                ##银行卡持有人姓名
    zhanghao = yongfuxinxi.get("卡号")            ##银行卡账号
    print("卡号是%s,"%zhanghao)
    b1 = int(yongfuxinxi.get("密码"))             ##银行卡密码
    print("密码是%d"%b1)
    YY = int(yongfuxinxi.get("余额"))             ##银行卡当前余额
    if YY >= 10000:
        YA = 10000
    else:
        YA=(YY//100)*100##设置当前最高可取金额
    b2 = int(input("请输入你的6位密码:") ) ##第一次输入验证码
    czcs = 0 ##对用户存取款操作的次数进行统计
    gaimicshu = 0 ##对用户修改密码的次数进行统计
    cs = 1  # 对用户输入密码的次数进行统计
    tu ="" #退出初始化
    yaa=1 ##可取款金额初始化
    while cs <= 4:  ##密码最多允许输入5次
        if b1 != b2:
            cs += 1
            x = input("输入错误,请重新输入6位密码:")
            b2 = int(x)##如果输入密码错误。则返回重输
        else:
            print("密码输入正确")
            print("你的账户余额为%d元" % YY)
            print("你今日最多可取款的金额为%d元" %YA )
            ccz = int(input("你需要进行什么操作,1:存款,2:取款,0:修改密码,按其他数字键退卡:"))
            if ccz != 1 and ccz != 2 and ccz != 0 and len(str(ccz)) >= 1 :
                ccz = 3
            while czcs <= 5:##设置存取款操作次数,最高为5次
                if ccz == 1:
                    print("注意:单张纸币的面额必须是50元或是100元")
                    print("请把钞票放入存款入口,进行存款")
                    ck = int(input("存款金额:"))
                    if ck%50 == 0:  ##设置存款金额必须是50的整数倍
                        print("你的存款金额为:%d,已经为你完成存款" % ck)
                        YY = ck + YY ##返回当前账户余额
                        print("当前你的账户余额为%d" % YY)
                        yongfuxinxi["余额"] = str(YY)
                        czcs += 1
                        ccz = int(input("你需要进行什么操作,0:修改密码,1:存款,2:取款,按其他数字键退卡:"))
                        if ccz != 1 and ccz != 2 and ccz != 0 and len(str(ccz)) >= 1:
                            ccz = 3
                    else:
                        print("请取回不是50或是100面额的钞票")
                elif ccz == 2:
                    if yaa == 0 :
                        print("今天已经没有可取的钱")
                        ccz = int(input("存款请按1,修改密码请按0,按别的任意键退出:"))
                        if ccz != 0 and ccz !=1 and len(str(ccz))>=1:
                            ccz = 3
                    else:
                        print("输入取款金额必须是100的整数倍,否则无法取款")
                        qk = int(input("请输入你的取款金额,最多可取%d元:" % YA))
                        if qk <= YA:
                            if qk % 100 == 0:
                                qr = int(input("取款金额为%d元,确认请按1,按其他数字键取消:" % qk))
                                if qr != 1 and len(str(qr)) >= 1:
                                    qr = 2
                                if qr == 1:
                                    YY = YY - qk
                                    YA = YA - qk
                                    print("请在出钞口取走你的钞票")
                                    print("你的账户余额为%d元" % YY)
                                    yongfuxinxi["余额"] = str(YY)
                                    print("你当前剩余可取金额为%d元"%YA)
                                    czcs += 1
                                    if YA//100 == 0:
                                        yaa=0
                                        ccz=int(input("存款请按1,修改密码请按0,按其他数字退卡:"))
                                        if ccz != 1 and ccz != 0 and len(str(ccz)) >= 1 :
                                            ccz = 3
                                    else:
                                        ccz = int(input("存款请按1,取款请按2,修改密码请按0,按其他数字键退卡:"))
                                        if ccz != 1 and ccz != 2 and ccz != 0 and len(str(ccz)) >= 1:
                                            ccz = 3
                                elif qr == 2:
                                    ccz = int(input("存款请按1,取款请按2,修改密码请按0,按其他数字键退卡:"))
                                    if ccz != 1 and ccz != 2 and ccz != 0 and len(str(ccz)) >= 1:
                                        ccz = 3
                                else:
                                    print("你的输入有误,请重新操作")
                            else:
                                print("取款金额必须要100的整数倍,请重新输入取款金额")
                        else:
                            print("你输入的取款金额大于可取款金额")
                            print("你最多可取%d元,请重新操作" % YA)
                elif ccz == 3:
                    for key,value in yongfuxinxi.items():
                        print(key,value)
                    print("请取回你的卡!")
                    print("感谢你的使用,再见!")
                    break
                elif ccz == 0 :
                    while gaimicshu < 3:
                        gaimi1=input("请输入新的6位数字密码,或者按1取消修改:")
                        if  gaimi1 != "1":
                            gaimi2=input("请再次输入6位数字密码:")
                        else:
                            ccz = int(input("你需要进行什么操作,1:存款,2:取款,0:修改密码,按其他数字键退卡:"))
                            if ccz != 1 and ccz != 2 and ccz != 0 and len(str(ccz)) >= 1:
                                ccz = 3
                            break
                        if gaimi1 != gaimi2 :
                            print("密码修改失败")
                            gaimicshu += 1
                            if gaimicshu >= 3:
                                print("密码修改失败,你今日修改密码次数已满3次,请改日再来")
                                for key, value in yongfuxinxi.items():
                                    print(key, value)
                                tu = input("请按任意键退出:")
                                if len(tu) >= 1:
                                    print("已退出,请取回你的卡")
                                    print("感谢你的使用,再见!")
                                break
                        else:
                            if len(tu) >= 1:
                                break
                            else:
                                print("修改密码成功,你当前的密码是%s"%gaimi1)
                                b1=int(gaimi1)
                                yongfuxinxi["密码"] = gaimi1
                                gaimicshu += 1

                                if gaimicshu >= 3:
                                    print("你今日修改密码次数已满3次")
                                    yongfuxinxi["密码"] = gaimi1
                                    ccz = int(input("你需要进行什么操作,1:存款,2:取款,按其他数字键退卡:"))
                                    if ccz != 1 and ccz != 2 and len(str(ccz)) >= 1:
                                        ccz = 3
                                    break
                                else:
                                    gaimi2 = ""
                                    ccz = int(input("你需要进行什么操作,1:存款,2:取款,0:修改密码,按其他数字键退卡:"))
                                    if ccz != 1 and ccz != 2 and ccz != 0 and len(str(ccz)) >= 1:
                                        ccz = 3
                                    break
                    else:
                        if len(tu) >=1 :
                            break
                        else:
                            print("你今日修改密码已经满3次,无法修改密码")
                            if czcs <  5:
                                ccz=int(input("存款请按1,取款请按2,按其他键退出:"))
                                if  ccz != 1 and ccz != 2:
                                    ccz = 3
                                    break
                            else:
                                print("今日你已无法进行任何操作")
                                for key, value in yongfuxinxi.items():
                                    print(key, value)
                                tu = input("请按任意键退出:")
                                if len(tu) >= 1:
                                    print("已退出,请取回你的卡")
                                    print("感谢你的使用,再见!")
                                    break
            else:
                if len(tu) >= 1:
                    break
                else:
                    print("你今日的存取操作已满5次,已经无法进行存取")
                    if gaimicshu < 3:
                        ccz = int(input("修改密码请按0,按其他任意键退出:"))
                        if ccz !=0 :
                            ccz = 3
                        break
                    else:
                        print("今日你已无法进行任何操作")
                        for key, value in yongfuxinxi.items():
                            print(key, value)
                        tu = input("请按任意键退出:")
                        if len(tu) >= 1:
                            print("已退出,请取回你的卡")
                            print("感谢你的使用,再见!")
                            break
            break
    else:
        print("你输入密码错误超过了限制,请去柜台办理")
        for key, value in yongfuxinxi.items():
            print(key, value)
        tu = input("请按任意键退出:")
        if len(tu) >= 1:
            print("已退出,请取回你的卡")



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值