用户注册

        根据用户输入的用户名来检测,是否存在,如果不存在则让用户输入密码,如果两次密码输入正确,则注册成功

用户登录

        根据用户输入的用户名来判断是否属于黑名单用户,如果不属于黑名单用户,则让用户输入密码,密码正确则登录成功,否则返回循环

Python代码

# 读取所有的用户账号密码
userlist = []  # 存放所有的用户名
pwdlist = []  # 存放所有用户密码
with open('user.txt', 'a+', encoding='utf-8') as fp:  # a+模式如果没有文件,则新建文件,且指针在最后一行
    fp.seek(0)  # 把指针移动到文件头部
    res = fp.readlines()  # 按照每一行读取所有的数据
    for i in res:  # 循环读取每一行的数据
        r = i.strip()  # 去掉换行以及两侧的空白
        arr = r.split(':')  # 按照:将字符串转换成列表
        userlist.append(arr[0])  # 将用户名,加入到列表中
        pwdlist.append(arr[1])  # 将密码,加入到列表中

# 获取黑名单用户
blacklist=[]
with open('black.txt','a+',encoding='utf-8') as fp:
    fp.seek(0)  # 把指针移动到文件头部
    res = fp.readlines()  # 按照每一行读取所有的数据
    for i in res:  # 循环读取每一行的数据
        r = i.strip()  # 去掉换行以及两侧的空白
        arr = r.split(':')  # 按照:将字符串转换成列表
        blacklist.append(arr[0])  # 将用户名,加入到列表中


def login():
    # 定义变量,控制登录的外循环
    islongin = True
    errnum = 3
    while islongin:
        username = input('欢迎登录,请输入用户名:')
        # 检测用户是否存在
        if username in userlist:
            while True:
                # 用户名存在让用户输入密码
                if username in blacklist:
                    print('黑名单用户,禁止登陆')
                    break  # 结束内循环
                else:
                    pws = input('请输入密码:')
                    # 检测用户输入的密码是否正确
                    # 获取用户名在用户列表中的索引
                    inx = userlist.index(username)  # 获取用户名所在的索引
                    if pws == pwdlist[inx]:
                        print('密码正确')

                        islongin = False  # 结束外循环
                        break  # 结束内循环
                        # 循环结束
                    else:
                        errnum -= 1
                        if errnum == 0:
                            with open('black.txt','a+',encoding='utf-8') as fp:
                                fp.write(username+'\n')
                            print('密码错误次数太多,账号锁定')
                            break  # 结束内循环
                        elif errnum <= 0:
                            print('账号锁定')
                            break  # 结束内循环

                        else:
                            print(f'密码错误,您还有{errnum}次机会')
        else:
            print('用户不存在')

def User_register():#账号注册
    #定义一个变量来控制外循环
    site= True
    # 用户输入用户名
    while site:
        username = input('欢迎注册,请输入用户名:')
        if username in userlist:
            print('用户名存在,请从新输入')
        else:
            # 用户名需要检测是否存在
            # 循环输入密码,如果都正确则循环结束
            while True:
                # 请输入密码
                pwd = input('请输入密码(大于3位):')
                # 检测密码长度是否小于3位
                if len(pwd) >= 3:
                    # 请输入确认密码
                    repwd = input('请输入确认密码:')
                    if pwd == repwd:
                        # 用户名和密码都正确就可以写入文件

                        # 打开文件,写入数据
                        with open('user.txt', 'a+', encoding='utf-8') as fp:
                            fp.write(f'{username}:{pwd}\n')
                            print(f'注册成功:账号:{username} 密码:{pwd}')
                            # User_selection()#注册成功后,跳转到用户选择
                        # 结束循环
                        # 结束外循环
                        site = False
                        #结束内部循环
                        break
                    else:
                        print("两次密码不一致,请从新输入")
                else:
                    print('密码格式不正确')

def User_selection():#根据用户的输入进行相应的操作1.注册 2.登录
    while True:
        print('[1]注册账号\n[2]登录账号')
        user_input=input('请输入您需要的操作:')
        if user_input=='1':
            User_register()
            break
        elif user_input=='2':
            login()
            break
        else:
            print('输入错误')
User_selection()#用户操作选择界面