python作业/练习/实战:2、注册、登录(文件读写操作)
作业要求
1、实现注册功能
输入:username、passowrd,cpassowrd
最多可以输错3次
3个都不能为空
用户名长度最少6位, 最长20位,用户名不能重复
密码长度最少8位,最长15位
两次输入的密码要一致
注册成功之后,要写到文件里面
2、登陆功能实现
最多可以输错3次
用户名和密码去文件里面取
提示
列表list、文件的打开/读/写/关闭、判断、循环
相关教程
代码范例
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('错误次数过多')
python作业/练习/实战:2、注册、登录(文件读写操作)的更多相关文章
- Python笔记之 - 一张截图诠释"文件读写" !
Python笔记之 - 一张截图诠释"文件读写" ! 源代码如下: # 文件读写 str_test1 = "先创建txt文件再写入内容: 我是大帅哥" # wi ...
- python里文件读写操作
文件读写操作一种基本操作,但是里面也存在很多需要注意的问题,例如字符编码.内存缓冲.指针位置等等.如果忽视这些问题就会引起很多不必要的麻烦.简单来说,文件的读写分为几个过程: 打开文件,并定义操作文件 ...
- python 文件读写操作(24)
以前的代码都是直接将数据输出到控制台,实际上我们也可以通过读/写文件的方式读取/输出到磁盘文件中,文件读写简称I/O操作.文件I/O操作一共分为四部分:打开(open)/读取(read)/写入(wri ...
- python(三)一个文件读写操作的小程序
我们要实现一个文件读写操作的小程序 首先我们有一个文件 我们要以"============"为界限,每一个角色分割成一个独立的txt文件,按照分割线走的话是分成 xiaoNa_1. ...
- ios 简单的plist文件读写操作(Document和NSUserDefaults)
最近遇到ios上文件读写操作的有关知识,记录下来,以便以后查阅,同时分享与大家. 一,简单介绍一下常用的plist文件. 全名是:Property List,属性列表文件,它是一种用来存储串行化后的对 ...
- excel、xls文件读写操作
python 常用的excel.xls文件读写操作,有两个模块 xlrd:读 xlwt:写 本次先写一个读的例子: class CaseData(object): def __init__(self, ...
- c语言文件读写操作总结
C语言文件读写操作总结 C语言文件操作 一.标准文件的读写 1.文件的打开 fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程 ...
- [转]Android - 文件读写操作 总结
转自:http://blog.csdn.net/ztp800201/article/details/7322110 Android - 文件读写操作 总结 分类: Android2012-03-05 ...
- PHP文件读写操作之文件写入代码
在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基本的PHP开发 ...
- Java 字节流实现文件读写操作(InputStream-OutputStream)
Java 字节流实现文件读写操作(InputStream-OutputStream) 备注:字节流比字符流底层,但是效率底下. 字符流地址:http://pengyan5945.iteye.com/b ...
随机推荐
- 用Python实现一个大数据搜索引擎
用Python实现一个大数据搜索引擎 搜索是大数据领域里常见的需求.Splunk和ELK分别是该领域在非开源和开源领域里的领导者.本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家 ...
- Weblgic安装应用报错:Caused by: com.bea.xml.XmlException: failed to load java type corresponding to e=web-a
文章目录 报错如下 解决: 报错如下 Exception in AppMerge flows' progression 后台日志报错: Caused by: com.bea.xml.XmlExcept ...
- java虚拟机规范(se8)——class文件格式(二)
4.4 常量池 java虚拟机指令并不依赖类.接口.类实例或者数组的运行时布局.相反,指令依靠常量池中的符号信息. 所有的常量池条目都有如下的通用结构: cp_info { u1 tag; u1 in ...
- 第一节 初识RabbitMQ
原文:第一节 初识RabbitMQ 版权声明:未经本人同意,不得转载该文章,谢谢 https://blog.csdn.net/phocus1/article/details/87280120 1.什么 ...
- IDisposable实现的方法什么时候被执行的
一,以什么是GC所认为的垃圾? 不再被应用程序的root或者别的对象所引用的对象就是已经死亡的对象,即所谓的垃圾,需要被回收 二,在仓储设计中,我们都知道非托管资源的手动释放,但继承的IDisposa ...
- 阿里云Linux(Centos7)下搭建SVN服务器
1,使用yum安装SVN yum -y install subversion 安装完成之后,验证安装结果 svn help 2,新建仓库目录 在/usr/soft目录下面创建一个svn目录,用来作为s ...
- 2019-8-31-Latex-公式速查
title author date CreateTime categories Latex 公式速查 lindexi 2019-08-31 16:55:58 +0800 2018-05-25 16:5 ...
- ab(http)与abs(https)压测工具
在学习ab工具之前,我们需了解几个关于压力测试的概念 吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请 ...
- 关于使用html2canvas 绘制图片的坑
html2canvas绘制跨域图片之后,会导致画布被污染,从而无法使用canvas的toDateUrl()等方法获取图片数据的方法,这是canvas的限制而并非html2canvas的原因.好了锅甩好 ...
- jquery-ui拖拽对齐线位置不对的操作
1,在draggable的drag中直接获取$(this).offset()来给对齐线设置top和left: 2,在draggable的drag中直接获取event的clientX去和event的of ...