python作业/练习/实战:2、注册、登录(文件读写操作)

作业要求

1、实现注册功能
输入:username、passowrd,cpassowrd
最多可以输错3次
3个都不能为空
用户名长度最少6位, 最长20位,用户名不能重复
密码长度最少8位,最长15位
两次输入的密码要一致
注册成功之后,要写到文件里面

2、登陆功能实现
最多可以输错3次
用户名和密码去文件里面取

 

提示

列表list、文件的打开/读/写/关闭、判断、循环

 

相关教程

python学习笔记(二):python数据类型

python学习笔记(三):python运算符

python学习笔记(四):python文件操作

 

代码范例

user.txt文件内容格式如下:

wangxiaoliu,123123123
xiaoming,44442222
zhangsan,00998877

注册:

f = open('user.txt', 'a+')#打开一个txt文本,a+意思是追加模式,可读可写
f.seek(0)#将指针移到第1行

res=f.read() #将文本读出来,保存成一个列表
all_user_name=[]# 定义一个空的元祖,用来装用户名

for r in res.split('\n'): #用换行分隔所有的“用户名密码”
    username=r.split(',')[0]#用逗号分隔用户名和密码,将用户名保存在username中
    all_user_name.append(username)#保存用户名
    print(all_user_name)  # 打印看一下是不是把用户名分离出来了


for i in range(3):
    username = input('请输入用户名:').strip()# 去掉两端空格
    password = input('请输入密码:').strip()
    cpassword = input('请重复输入密码:').strip()
    if username==''or password==''or cpassword=='':
        print('账号或密码不能为空')
    elif username in all_user_name:
        print('用户名重复')
    elif len(username)<6 or len(username)>20:
        print('用户名长度为6-20个字符')
    elif len(password)<8 or len(password)>15:
        print('密码长度为8-15个字符')
    elif password!=cpassword:
        print('两次密码不一致')
    else:
        print('恭喜注册成功!')
        f.write('\n'+username+','+password)#写入文本方法
        break
else:
    print('输入错误次数过多')
f.close()

 登录(写了两种方法):

 保存成list

f = open('user.txt', 'a+')
f.seek(0)
all=(f.read()) #将分割后的文本保存成一个list

for a in range(3):
    username2 = input('请登录:')
    password2 = input('请输入密码:')
    bb=username2+','+password2
    if bb in all:
        print('登录成功^_^')
        break
    else:
        print('账号或密码错误,请重新输入')
else:
    print('错误次数过多')
f.close()

 保存成字典

all_user={} # 定义一个空的字典
res = open('users.txt').read() #打开文件

for r in res.split('\n'):# ['username,123456', 'username2,abc123']
    # 用换行分隔所有的“用户名,密码”

    if r.split()!='':
        username=r.split(',')[0]#用逗号分隔用户名和密码,单独保存成元素
        pwd=r.split(',')[1]
        all_user[username]=pwd


for a in range(3):
    username = input('请登录:')
    pwd = input('请输入密码:')
    aa=username+','+pwd
    if username in all_user:
        if pwd==all_user.get(username):
            print('登录成功^_^')
            break
        else:
            print('账号或密码错误,请重新输入')
    else:
        print('错误次数过多')

 

转载于:https://www.cnblogs.com/haifeima/p/9557593.html

你可能感兴趣的:(python)