用户登入注册作业

#二:周末综合作业:
# 2.1:编写用户登录接口
#1、输入账号密码完成验证,验证通过后输出"登录成功"
#2、可以登录不同的用户
#3、同一账号输错三次锁定,(提示:锁定的用户存入文件中,这样才能保证程序关闭后,该用户仍然被锁定)

tag = True
dict = {}
while tag:
    inp_name = input('输入账号:')
    with open(r'b.txt', mode='r', encoding='utf-8') as f1:
        if inp_name in f1:
            print('该账户已被锁定')
            tag = False
            break
    inp_paw = input('输入密码:')
    with open(r'a.txt', mode='rt', encoding='utf-8') as f:
        for line in f:
            name,pwd = line.strip().split(':')
            if name == inp_name and pwd == inp_paw:
                print('登入成功')
                tag = False
                break
            elif name == inp_name and pwd != inp_paw:
                print('密码错误')
                if name not in dict:
                    dict[name]=0
                dict[name] = dict.get(name)+1
                if dict[name] == 3:
                    with open(r'b.txt', mode='a', encoding='utf-8') as f1:
                        f1.write(name)
                        print('该用户被锁定')
                        tag = False
                break
        else:
            print('账号不存在')







# 2.2:编写程序实现用户注册后,可以登录,
dict = {}
while True:
    msg = """
    0 退出
    1 登录
    2 注册
    """
    print(msg)
    cmd = input('请输入命令编号>>: ').strip()
    if not cmd.isdigit():
        print('必须输入命令编号的数字,傻叉')
        continue

    if cmd == '0':
        break
    elif cmd == '1':
        inp_name = input('输入账号:')
        with open(r'b.txt', mode='r', encoding='utf-8') as f1:
            if inp_name in f1:
                print('该账户已被锁定')
                break
        inp_paw = input('输入密码:')
        with open(r'a.txt', mode='rt', encoding='utf-8') as f:
            for line in f:
                name,pwd = line.strip().split(':')
                if name == inp_name and pwd == inp_paw:
                    print('登入成功')
                    break
                elif name == inp_name and pwd != inp_paw:
                    print('密码错误')
                    if name not in dict:
                        dict[name]=0
                    dict[name] = dict.get(name)+1
                    if dict[name] == 3:
                        with open(r'b.txt', mode='a', encoding='utf-8') as f1:
                            f1.write(name)
                            print('该用户被锁定')
                    break
            else:
                print('账号不存在')

    elif cmd == '2':
        inp_name = input('输入账号:')
        inp_paw = input('输入密码:')
        with open(r'a.txt', mode='rt',encoding='utf-8') as f:
            for line in f:
                name, pwd = line.strip().split(':')
                if name == inp_name:
                    print('账号已存在')
                    break
            else:
                with open(r'a.txt', mode='at', encoding='utf-8') as f:
                    f.write('{}:{}\n'.format(inp_name,inp_paw))
                    print('注册成功')
    else:
        print('输入的命令不存在')

    # 思考:上述这个if分支的功能否使用其他更为优美地方式实现
#二:周末综合作业:
# 2.1:编写用户登录接口
#1、输入账号密码完成验证,验证通过后输出"登录成功"
#2、可以登录不同的用户
#3、同一账号输错三次锁定,(提示:锁定的用户存入文件中,这样才能保证程序关闭后,该用户仍然被锁定)

tag = True
dict = {}
while tag:
inp_name = input('输入账号:')
with open(r'b.txt', mode='r', encoding='utf-8') as f1:
if inp_name in f1:
print('该账户已被锁定')
tag = False
break
inp_paw = input('输入密码:')
with open(r'a.txt', mode='rt', encoding='utf-8') as f:
for line in f:
name,pwd = line.strip().split(':')
if name == inp_name and pwd == inp_paw:
print('登入成功')
tag = False
break
elif name == inp_name and pwd != inp_paw:
print('密码错误')
if name not in dict:
dict[name]=0
dict[name] = dict.get(name)+1
if dict[name] == 3:
with open(r'b.txt', mode='a', encoding='utf-8') as f1:
f1.write(name)
print('该用户被锁定')
tag = False
break
else:
print('账号不存在')







# 2.2:编写程序实现用户注册后,可以登录,
dict = {}
while True:
msg = """
0 退出
1 登录
2 注册
"""
print(msg)
cmd = input('请输入命令编号>>: ').strip()
if not cmd.isdigit():
print('必须输入命令编号的数字,傻叉')
continue

if cmd == '0':
break
elif cmd == '1':
inp_name = input('输入账号:')
with open(r'b.txt', mode='r', encoding='utf-8') as f1:
if inp_name in f1:
print('该账户已被锁定')
break
inp_paw = input('输入密码:')
with open(r'a.txt', mode='rt', encoding='utf-8') as f:
for line in f:
name,pwd = line.strip().split(':')
if name == inp_name and pwd == inp_paw:
print('登入成功')
break
elif name == inp_name and pwd != inp_paw:
print('密码错误')
if name not in dict:
dict[name]=0
dict[name] = dict.get(name)+1
if dict[name] == 3:
with open(r'b.txt', mode='a', encoding='utf-8') as f1:
f1.write(name)
print('该用户被锁定')
break
else:
print('账号不存在')

elif cmd == '2':
inp_name = input('输入账号:')
inp_paw = input('输入密码:')
with open(r'a.txt', mode='rt',encoding='utf-8') as f:
for line in f:
name, pwd = line.strip().split(':')
if name == inp_name:
print('账号已存在')
break
else:
with open(r'a.txt', mode='at', encoding='utf-8') as f:
f.write('{}:{}\n'.format(inp_name,inp_paw))
print('注册成功')
else:
print('输入的命令不存在')

# 思考:上述这个if分支的功能否使用其他更为优美地方式实现

猜你喜欢

转载自www.cnblogs.com/bk134/p/12499470.html