Day2笔记(作业)

1、写注册的程序,账号密码存到文件里面,最多输入3次 1py
input('username:')
input('passwd:')
input('cpasswd:')
#1、账号、密码和确认密码都不能为空
#2、要校验账号是否存在,不存在才可以注册
#3、两次输入密码是否一致
#4、账号不区分大小
#5、账号和密码长度要大于等于6,小于等于12

f = open('user.txt','a+',encoding='utf-8')
f.seek(0)
user=[]
for lien in f:
    user.append(lien.split(',')[0])
for i in range(3):
    username = input('username:
').lower()
    passwd = input('passwd:
')
    cpasswd = input('cpasswd:
')

    if 12 < len(username) or 6 > len(username) or username.strip() == '':
        print("用户名长度需大于六位或小于十二位且不能为空!")
    elif 12 < len(passwd) or 6 > len(passwd) or passwd.strip() == '':
        print("密码长度需大于六位或小于十二位且不能为空!")

    elif passwd != cpasswd:
        print('两次密码输入不一致!')

    else:
            if username in user:
                print('用户名已存在')
            else:
                print('恭喜你,注册成功!')
                f = open('user.txt', 'a+', encoding='utf-8')
                f.write(username+','+passwd+'
')
                f.close()
                break
    f.close()

  

2、登录 2py(不包含选做)
input('username:')
input('passwd:')
#1、账号、密码不能为空
#2、要校验账号是否存在,不存在要提示
#3、最多输入3次
#4、账号不区分大小
#5、账号和密码长度要大于等于6,小于等于12

选做
#6、每次登录的时候密码错误,就这个账号的后面加一个失败次数,
#7、如果失败次数大于3次的话,提示账号已经被锁定。

f = open('user.txt', 'a+',encoding='utf-8')
f.seek(0)
r=(f.read()) #将分割后的文本保存成一个list
f.close()
userlist=r.split()#默认以空格或者换行符分隔字符串,返回值为list
userdic={}#定义一个空字典,存放所有账号
for i in userlist:#循环列表,取出每一个值
    username,password=i.split(',')#列表里的每一个值以“,”分隔字符串,“,”前面的是值账号,“,”后面的值是密码
    userdic[username]=password #以字典的形式存起来

for a in range(3):
    username = input('username:
').lower()
    passwd = input('passwd:
')
    bb = username + ',' + passwd

    if 12 < len(username) or 6 > len(username) or username.strip() == '':
        print("用户名长度需大于六位或小于十二位且不能为空!")
    elif 12 < len(passwd) or 6 > len(passwd) or passwd.strip() == '':
        print("密码长度需大于六位或小于十二位且不能为空!")
    elif username not in userdic:
        print('账号不存在')
    elif bb in userlist:
        print('登录成功')
        break
    else:
        print('密码错误')

  

原文地址:https://www.cnblogs.com/lz523/p/10952520.html