作业要求
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('错误次数过多')