day13

# 模拟登录、注册(先创建一个’user_data.txt 文件)

import read_write_file as filefunc
import re
import sys


while True:
    print('操作列表:')
    print(' 注册 : 1')
    print(' 登录 : 2')
    print(' 退出 : 3')
    print('请输入您的下一步操作序号: ',end='')
    operation_num=input()

    # *********************************************注册***********************************************
    if operation_num == '1':
        print('=============开始注册=============')
        print('请输入用户名: ',end='')
        user_name = input()
        user_data=filefunc.read_data()

        while 'name='+user_name  in user_data:
            print('用户名已存在,请重新输入用户名: ',end='')
            user_name=input()
        print('请输入密码: ',end='')
        password=input()
        filefunc.write_new_user(user_name,password)
        print('用户注册成功!')
        print('=============================')
    # *********************************************注册***********************************************


    # *********************************************登录***********************************************
    if operation_num == '2':
        name_try_num=1
        password_try_num = 1                               # 定义用户名和密码的尝试次数
        print('请输入用户名: ', end='')
        user_name = input()
        user_data = filefunc.read_data()
        while 'name='+user_name  not in user_data:
            if name_try_num < 5:                          # 如果次数过多,则控制退出程序
                print('用户名不存在,请重新输入用户名: ',end='')
                user_name = input()
                name_try_num+=1
            else:
                print('错误次数过多,程序已退出')
                sys.exit(0)

        print('请输入密码: ', end='')
        password = input()
        pattern_password=f'name={user_name}.*?psw=(.*?)\n'                           #书写正则找出正确的密码
        right_password=re.findall(pattern_password,user_data,re.S)[0]                #书写正则找出正确的密码 finall方法返回的是列表
        while password!=right_password:
            if password_try_num < 5:                      # 如果次数过多,则控制退出程序
                print('密码错误,请重新输入密码: ',end='')
                password = input()
                password_try_num+=1
            else:
                print('错误次数过多,程序已退出')
                sys.exit(0)

        print('用户名和密码正确,登录成功')
        print('=============================')
    # *********************************************登录***********************************************




    if operation_num == '3':
        print('程序退出')
        break

    if operation_num not in('1','2','3'):
        print('=============================')
        print('指令错误:请重新输入指令')
def read_data():
    with open('user_data.txt','r',encoding='utf-8') as f:
        reader=f.read()
        return reader


def write_new_user(name,psw):
    with open('user_data.txt','a',encoding='utf-8') as f:
        f.write(f'name={name}\t\t\tpsw={psw}\n')
        f.write('================================\n')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值