【作业.改】11.14

user_list = []
user_login = {}
shopping_car = []


def write_users_to_file():
    f = open('payment.txt','w', encoding='utf-8')
    for user in user_list:
        f.write(user['name'])
        f.write('|')
        f.write(user['password'])
        f.write('|')
        f.write(user['money'])
        if 'locktime' in user:
            f.write('|')
            f.write(user['locktime'])
        f.write(',')
    f.close()


def read_all_user():
    if user_list:
        return
    with open('payment.txt', 'rt', encoding='utf-8')as f:  # rt以文本方式只读
        text = f.read()
        if not text:
            return
        texts = text.split(',')

        for i in texts:
            temp = i.split('|')
            # print(temp)
            d_dic = {}
            d_dic['name'] = temp[0]
            d_dic['password'] = temp[1]
            d_dic['money'] = temp[2]
            user_list.append(d_dic)


def user_exist(name):
    for user in user_list:
        if user['name'] == name:
            return True
    return False


def write_user(name, password):
    with open('payment.txt', 'a+', encoding='utf-8')as f:
        old = ',%s|%s|0' % (name, password)
        f.write(old)


def register():
    while True:
        name = input('请输入用户名:').strip()
        password = input('请输入密码:').strip()
        if name and password:
            print('ok')
            if user_exist(name):
                print('用户名已存在')
                continue
            else:
                print('可以注册')
                if len(password) < 6:
                    print('密码不能少于6位')
                    continue
                else:
                    print('注册成功')
                    write_user(name, password)
                    # 手动添加新用户
                    user_list.append({'name': name, 'pwd': password, 'money': '0'})
                    return
        else:
            print('用户名或密码不能为空')


# register()
error_dic = {}
import time


def lock_user(username):
    for user in user_list:
        if user['name'] == username:
            # 写入时间
            user['locktime'] = str(time.time())
            print(username+'被锁定')
            # print(user_list)
            write_users_to_file()


def login():  # 登陆功能
    while True:
        name = input('输入用户名,输入0返回上层:')
        if name == '0':
            return
        flag = False
        for user in user_list:
            if user['name'] == name:
                flag = True
                break
        else:
            print('用户不存在,请先注册')
            continue
        password = input('输入密码:')
        for user in user_list:
            if user['name'] == name and user['password'] == password:
                print('登陆成功,欢迎%s' % name)
                user_login['name'] = name
                user_login['password'] = password
                user_login['money'] = user['money']
                user_login['shopping_car'] = shopping_car
                return True
        print('用户名或密码不正确 请重新输入')
        # 存入错误次数
        if name not in error_dic:
            error_dic[name] = 1
        else:
            error_dic[name] += 1

        num = error_dic[name]
        print('剩余尝试次数%d' % (3-num))
        if num == 3:
            lock_user(name)


def shopping():
    if not user_login:
        print('请先注册或登陆')
        return
    while True:
        shoping = [['1', 'coco', 10],
                   ['2', '1点点', 20],
                   ['3', 'ysl', 252]]
        for i in shoping:
            print('商品号{},{}:{}'.format(i[0], i[1], i[2]))
        num = input('请输入您要购买的商品序号或物品名(输入0退出):')
        if num == '0':
            print(shopping_car)
            return
        for i in shoping:
            if num not in i:
                continue
            else:
                user_login['shopping_car'].append(i)


def show_shopping_car():  # 查看 购物车
    if not user_login:
        print('请先注册或登陆')
        return
    print(user_login['shopping_car'])


def account_info():  # 查看 账户信息
    if not user_login:
        print('请先注册或登陆')
        return
    print('账号:{}\n密码:{}'.format(user_login['name'], user_login['password']))


def add_money():  # 充值
    if not user_login:
        print('请先注册或登陆')
        return
    add_money = int(input('请输入充值金额:'))
    user_login['money'] = int(user_login['money'])+add_money
    print('账户余额%s' % user_login['money'])


method_dic = {'1': register,
              '2': login,
              '3': shopping,
              '4': show_shopping_car,
              '5': account_info,
              '6': add_money}
# 作为程序的入口


def main():
    read_all_user()

    while True:
        print('''
        欢迎使用x宝商城 请选择
        1:注册
        2:登陆
        3:购物
        4:购物车
        5:账户信息
        6:账户充值
        0:退出
        ''')
        choice = input('请输入执行的功能:').strip()
        if choice == '0':
            return
        if choice not in method_dic:
            print('输入有误,请重新输入:')
            continue
        method_dic[choice]()


main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值