# 一、注册账号
# 1、用户名存在重新输入。
# 2、用户名只能由字母和数字组成,位数8~16位。
# 3、密码只能由字母和数字组成,位数8~16位。
# 4、输入邀请码。
# 4、输入验证码完成注册。
# 二、登录账号
# 1、账号不存在重新输入。
# 2、账号正确而密码错误错误3次则锁定该账号。
# ================注册环节================
print('超级会员注册'.center(30, '='))
info_cheek = 1
ivt_cheek = 1
while info_cheek:
    in_name = input('请输入您用于登录的用户名:').strip()
    if not in_name.isalnum():
        print('用户名只能由数字及字母组成,请重新输入')
        continue
    if len(in_name) < 8 or len(in_name) > 16:
        print('用户名长度不合规(8到16位),请重新输入')
        continue
    with open(r'0011 账号密码库.txt', mode='rt', encoding='utf-8')as sql:
        for cheek in sql:
            if in_name == cheek.strip().split(':')[0]:
                print('用户名已存在,请重新输入')
                break
            else:
                info_cheek = 0
while 1:
    in_pwd = input('请输入您用于登录的密码:').strip()
    if not in_pwd.isalnum():
        print('密码只能由数字及字母组成,请重新输入')
        continue
    elif len(in_pwd) < 8 or len(in_pwd) > 16:
        print('密码长度不合规(8到16位),请重新输入')
        continue
    else:
        break
print('用户名和密码可用'.center(30, '='))
while ivt_cheek:
    ivt_num = input('请输入邀请码:').strip()
    with open(r'0012 邀请码库.txt', mode='rt', encoding='utf-8')as sql:
        for cheek in sql:
            if ivt_num == cheek.strip():
                ivt_cheek = 0
                break
        else:
            print('邀请码不存在,请重新输入')
ident_set = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}
ident_num = ''
while 1:
    for _ in range(4):
        ident_n = ident_set.pop()
        ident_num += ident_n
    in_ident = input('请输入验证({}):'.format(ident_num)).strip()
    if in_ident == ident_num:
        break
    else:
        print('验证码输入错误,请重新输入')
        ident_num = ''
print('恭喜您,注册成功,请确认并保管好您的用户名及密码')
print('用户名:{}'.format(in_name))
print('密码:{}'.format(in_pwd))
in_info = in_name + ':' + in_pwd + '\n'
with open(r'0011 账号密码库.txt', mode='at', encoding='utf-8')as sql:
    sql.write(in_info)
# ================登录环节================
condi = 1
miss_list = []
while condi:
    print('超级会员登录'.center(30, '='))
    user_name = input('请输入用户名:')
    user_pwd = input('请输入密码:')
    with open(r'0013 黑名单.txt', mode='rt', encoding='utf-8')as sql:
        for black_cheek in sql:
            if user_name == black_cheek.strip():
                print('该用户已被锁定,请稍后再试')
                condi = 0
                break
        else:
            with open(r'0011 账号密码库.txt', mode='rt', encoding='utf-8')as sql:
                for login_c in sql:
                    login_cheek = login_c.strip().split(':')
                    if user_name == login_cheek[0] and user_pwd == login_cheek[1]:
                        print('登录成功')
                        condi = 0
                        break
                    elif user_name == login_cheek[0] and user_pwd != login_cheek[1]:
                        miss_list.append(user_name)
                        chance = 3 - miss_list.count(user_name)
                        if chance > 0:
                            print('密码错误,请重试,还可以尝试{}次'.format(chance))
                            break
                        else:
                            print('该用户的密码已输错3次,已被锁定')
                            condi = 0
                            with open(r'0013 黑名单.txt',mode='at',encoding='utf-8')as sql:
                                sql.write('{}\n'.format(user_name))
                            break
                else:
                    print('用户名不存在,请重新输入')

 

posted on 2020-01-03 03:01  焚音留香  阅读(272)  评论(0编辑  收藏  举报