P

PythonATM_只存钱不吐钱系列

xuanbei Python 2019-05-07

'''
欢迎盗窃
版本信息 V3
'''
userNameInput = ""
passWordInput = ""
#我是一个字典中的字典
userDatabase = {"rule" : {"password" : "123456" , "shenMoney" : 5000} ,
                "rule2" : {"password" : "123456" , "shenMoney" : 5000}
                }


# 注册函数
def regist(userName , passWord):
    userDatabase[userName]= {"password" : passWord , "shenMoney": 5000} # 定义一个初始金额

    return 0

def login(userName , passWord):
    if userDatabase.get(userName) is None:
        return "登录失败,立刻滚蛋"
    elif userDatabase.get(userName).get("password") == passWord:
        return 0


# 账户管理:用户可以随时查看自己的账户余额。用户可以输入其他账户用户名,
# 实现转账功能;用户名必须存在。用户也可以模拟实现存取款功能。
def acou_ma(userName , need ): #这个userName一般指的是自己登录账号的名字
    def showMoney():
        return userDatabase.get(userName).get("shenMoney")

    def inOutMoney():
        userWantmoney = input("大哥,请开始你的存款取款模式,负数就是取款")
        userDatabase[userName]["shenMoney"] += float(userWantmoney)
        return print("您成功完成存取款,您存取的%s将会在一万年之后到账" % userWantmoney)

    def transfer():
        while True:
            userTranAim = input("大兄弟,你要转给谁")
            if userDatabase.get(userTranAim) is None or (userTranAim == userName):
                print("用户不存在或者用户名就是你寄几, 坦率的讲,不允许转账")
            else:
                break
        userTranMoney = float(input("大兄弟,你要转好多钱"))

        userDatabase[userTranAim]["shenMoney"] += userTranMoney
        userDatabase[userName]["shenMoney"] -= userTranMoney # 用户自己的钱包要扣钱哒
        return print("转账成功,您的账户只剩下%s了" % userDatabase[userName]["shenMoney"])


    if need == "showMoney":
        return showMoney()
    if need == "transfer":
        return transfer()
    if need == "inOutMoney":
        return inOutMoney()




# 主要菜单
flag = 1 #退出多层while的重要flag
print("welcome to GuaNiu ATM")
while True:
    userChoice = int(input("请输入您的选项 "
          "    1 : 注册"
          "    2 : 登录并管理"
          "    3 : 退出"
          ))
    if userChoice == 1:
        while True:
            userNameInput = input("请输入您的用户名")
            if userDatabase.get(userNameInput) is None:
                passWordInput = input("输入用户密码")
                if regist(userNameInput, passWordInput) == 0:
                    print("注册成功")
                    break
            else:
                print("您的用户名已存在")



    if userChoice == 3:
        break
    else:
        if userChoice == 2:
            while True:

                if flag < 4:
                    userNameInput =  input("输入用户名")
                    passWordInput =  input("输入用户密码")
                    if login(userNameInput , passWordInput) == 0:
                        print("不那么尊敬的%s,您好,恭喜您登入成功" % userNameInput)
                        while True:
                            print("按1显示余额   按2存取款   按3转账    按4退出")

                            print("")
                            manage_choice = int(input("请开始你的表演"))
                            if manage_choice == 1:
                                print("您的余额是%s" % acou_ma(userNameInput, 'showMoney'))
                            if manage_choice == 2:
                                acou_ma(userNameInput, 'inOutMoney')
                            if manage_choice == 3:
                                acou_ma(userNameInput, 'transfer')
                            if manage_choice == 4:
                                flag = 5
                                break

                    elif flag == 5:
                        break
                    else:
                        print("输入错误")
                        flag = flag+1
                else:
                    break






######代码测试区
# acou_ma("rule" , "transfer" )
PREV
常用软件/应用下载
NEXT
给我,闭嘴。

评论(0)

发布评论