使用Python配合字典写出一个简易的用户管理系统

user_dic = {}



class Account:
    def __init__(self, user, password):
        self.user = user
        self.password = password

    def deposit(self, money):  # 存款
        from decimal import Decimal
        user_money = Decimal(str(user_dic[self.user]['money'])) + Decimal(money)
        user_dic[self.user]['money'] = user_money
        print(f'存款成功,你现在的余额有{user_dic[self.user]["money"]}元。')

    def withdraw(self, money):  # 取款
        from decimal import Decimal
        if money <= user_dic[self.user]['money']:
            user_dic[self.user]['money'] = Decimal(str(user_dic[self.user]['money'])) - Decimal(str(money))
            print(f'取款成功,你现在的余额有{user_dic[self.user]["money"]}元。')

    def query(self):  # 查询余额
        print(f'你现在的余额有{user_dic[self.user]["money"]}元。')

    def transfer(self, transfer_money, transfer_user):
        from decimal import Decimal
        if user_dic[self.user]['money'] >= float(transfer_money):
            user_dic[self.user]['money'] = Decimal(str(user_dic[self.user]['money'])) - Decimal(transfer_money)
            user_dic[transfer_user]['money'] = Decimal(str(user_dic[transfer_user]['money'])) + Decimal(transfer_money)

    def deregistration(self):
        user_dic.pop(self.user)
        print('销户成功')


def login(user, password):  # 登录之后
    print('======登录成功=======')
    A = Account(user=user, password=password)
    while True:
        num1 = input('请选择你要进行的操作1、存款 2、取款 3、查款 4、销户 5、转账 其他:退出')
        if num1 == '1':
            money_deposit1 = input('请输入存款金额:')
            # eval()函数   字符串计算
            if eval(money_deposit1) > 0 and (type(eval(money_deposit1)) == float or type(eval(money_deposit1)) == int):
                money_deposit1 = money_deposit1
                A.deposit(money_deposit1)
            else:
                print('金额输入有误,请重新操作。')

        elif num1 == '2':
            money_deposit2 = input('请输入取款金额:')
            if eval(money_deposit2) > 0 and (
                    type(eval(money_deposit2)) == float or type(eval(money_deposit2)) == int) and (
                    Decimal(money_deposit2) <= user_dic[user]['money']):
                money_deposit2 = float(money_deposit2)
                A.withdraw(money_deposit2)
            else:
                print('金额输入有误,请重新操作。')

        elif num1 == '3':
            A.query()

        elif num1 == '4':
            A.deregistration()
            break

        elif num1 == '5':
            transfer_user = input('请输入需要转账的用户')
            transfer_money = input('请输入转账金额')
            if (eval(transfer_money)) > 0 and (
                    type(eval(transfer_money)) == float or type(eval(transfer_money)) == int) and (
                    Decimal(transfer_money) <= user_dic[user]['money']):
                A.transfer(transfer_money,transfer_user)
        else:
            break


if __name__ == '__main__':
    from decimal import Decimal
    print('====欢迎来到帅哥滴银行====')
    while True:
        
        num = input('请选择你要进行的操作:1、登录  2、注册  其他:退出')
        if num == '1':
            user_name = input('请输入用户名:')
            pwd = input('请输入密码:')
            if user_name in user_dic:
                if pwd == user_dic[user_name]['password']:
                    login(user=user_name, password=pwd)
            else:
                print('用于不存在,请先注册用户。')

        elif num == '2':
            user_name1 = input('请输入用户名:')
            pwd1 = input('请输入密码:')
            pwd2 = input('请再次输入密码:')

            if user_name1 not in user_dic:
                while pwd1 != pwd2:
                    pwd1 = input('请输入密码:')
                    pwd2 = input('请再次输入密码:')
                else:
                    print('注册成功')
                    user_dic[user_name1] = {'password': pwd2, 'money': Decimal('0')}
            else:
                print('用户已经存在,请更换用户名')

        else:
            break

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值