python 3 - 写一个注册的程序,账号和密码都存在文件里面
choice = input('请输入你的选择:1,注册2、删除用户3、登录')
#注册
输入
账号
密码
密码确认
# #需要校验用户是否存在,两次输入的密码,是否一致,为空的情况
#账号和密码都存在文件里面
#删除
输入一个用户名
#需要校验用户是否存在
#登录
输入账号密码登录
choice = input("请输入您的选择:1.注册2.删除用户 3.登录").strip()
f = open("register.txt",'a+')
f.seek(0)
allUser = []
for user in f.readlines():
uname = str(user).split(',')[0] #从文件中取int("username:"+uname)
allUser.append(uname)
print("alluser:"+str(allUser))
if choice == '1':
username = input("please input username: ").strip()
if username in allUser:
print("该用户名已经被注册!")
else:
pwd = input("please input your password:")
pwd2 = input("please confirm your password:")
if pwd != pwd2 or pwd.strip()=="" or pwd2.strip()=="":
print("两次输入密码需保持一致且密码不能为空!")
else:
f.write(username+','+ pwd+'\n')
elif choice == '2':
deluser = input("please input the name you want to delete:")
if deluser in allUser:
print("==========")
#找到该用户所在的行数
lineNum=allUser.index(deluser)
print("Linenum:"+str(lineNum))
f.seek(0)
lines = f.readlines()
lines[lineNum] ="" #删除文件中该行内容
print(lines)
with open("register.txt","w") as f1:
for line in lines:
f1.write(line)
else:
print("该用户不存在!")
elif choice == '3':
user = input("please input your name:")
passwd = input("please input your password:")
print("登录成功")
else:
print("输入有误!")
总结:
1.
uname = str(user).split(',')[0] #从文件中取int("username:"+uname)
因为文件中每行读出的内容是个list,同时包含用户名和密码,所以首先需要把用户名单独取出来,放到一个list中,以备后面使用
2.
lineNum=allUser.index(deluser)
删除用户时,需要找到该用户所在的行数,从文件中删除该行。因为username存在一个list中,且是按照读取的顺序存下来的,所以找到usernam在allUser这个list中的位置,即是找到该username在文件中所在的行数
3.
f.seek(0)
lines = f.readlines()
lines[lineNum] ="" #删除文件中该行内容
print(lines)
with open("register.txt","w") as f1:
for line in lines:
f1.write(line)
删除改行,需要将改行的内容变为空,同时将删除该行内容后的lines重新写入文本中。若没有重新写入,显示的仍是原来的文本。
python 3 - 写一个注册的程序,账号和密码都存在文件里面的更多相关文章
- python学习(10)字典学习,写一个三级菜单程序
学习了字典的应用.按老师的要求写一个三级菜单程序. 三级菜单程序需求如下: 1.深圳市的区--街道--社区---小区4级 2.建立一个字典,把各级区域都装进字典里 3.用户可以从1级进入2级再进入3级 ...
- python 怎么启动一个外部命令程序, 并且不阻塞当前进程
http://www.myexception.cn/perl-python/1278887.html http://blog.chinaunix.net/uid-25979788-id-3081912 ...
- 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度。 2)输出字符串中第一个出现字母a的位置。 3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。 4)将字符串“hello”替换为“me”,输出新字符串。 5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。 */
namespace test4 {/* 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度. 2)输出字符串中第一个出现字母a的位置. 3)在字符串的第3个字符 ...
- python 3 - 写一个自动生成密码文件的程序
1.你输入几,文件里面就给你产生多少条密码 2.密码必须包括,大写字母.小写字母.数字.特殊字符 3.密码不能重复 4.密码都是随机产生的 5.密码长度6-11 import string,rando ...
- 手把手教你写一个RN小程序!
时间过得真快,眨眼已经快3年了! 1.我的第一个App 还记得我14年初写的第一个iOS小程序,当时是给别人写的一个单机的相册,也是我开发的第一个完整的app,虽然功能挺少,但是耐不住心中的激动啊,现 ...
- 利用 Linux tap/tun 虚拟设备写一个 ICMP echo 程序
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 前面两篇文章已 ...
- 用javaweb写一个注册界面,并将数据保存到后台数据库(全部完成)(课堂测试)
一.题目:WEB界面链接数据库 1.考试要求: 1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母. ...
- [C#学习笔记1]用csc.exe和记事本写一个C#应用程序
csc.exe是C#的命令行编译器(CSharpCompiler),可以编译C#源程序成可执行程序.它与Visual Studio等IDE(Integrated Development Environ ...
- 个人如何免费申请一个微信小程序账号进行开发尝鲜
大家都知道微信小程序并没有开放个人申请注册账号,觉得很遗憾,作为一个开发者,居然不能一览究竟. 前段时间研究了一番,教大家如何个人申请注册一个小程序账号,不花300块钱,当然只能作为开发尝鲜,不能发布 ...
随机推荐
- axios 异步加载 导致 {{}} 中变量为 undefined 报错 的 解决方案
情景:axios 异步加载数据,当返回数据为一个 数组 时,双花括号中 这样写 会报错 {{informationDetail[0].img}} 解决方案一:通过 v-if 进行判断 解决方案二:单独 ...
- MySQL 函数笔记
统计相关函数 COUNT和SUM函数使用小技巧 参考自: MySQL - Conditional COUNT with GROUP BY 在一个 SQL 中统计多个指标的个数: SELECT COUN ...
- 【Python】合并(拼接)字符串
在很多情况下,我们都需要合并字符串.例如:需要将姓氏与名字存储在不同的变量中,然后显示的时候再将他们合二为一 first_name = 'oliver' last_name = 'smith' ful ...
- zoj 2949 - Coins of Luck
题目:有2中面条各n碗.每次抛硬币推断吃哪一种(到一种吃完为止).问抛硬币的数学期望. 分析:动态规划.概率dp.求出每种结束状态(即,有一种吃完)的概率,分别乘以步长即为期望. 大黄解法:状态位剩余 ...
- jQuery--基础(操作标签)
jQuery-样式操作 .css() 可以直接使用来获取css的值 .css("color") 使用方法,如果想给查找到的标签添加样式: .css("colo ...
- Minify把CSS和JS压缩和削减
Minify把CSS和JS压缩和削减(Minify:去掉空格回车符等),以及把多个CSS,JS文件整合到一个文件里.不要以为你的大带宽没有必要进行这类优化.使用它的理由更重要的是文件合并,而不是压缩, ...
- jdbc 简单连接
package itcast; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;i ...
- Struts2实现文件的上传与动态下载功能。
本篇主要使用Struts2实现文件的上传与动态下载功能.出于安全考虑,所以,在硬盘上存储上传的文件的时候,统一都重新命名为随机字符串.用数据库存储真实文件名与随机文件名称之间的关联. 下面的是实体类 ...
- FTPHelper类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...
- python学习(三)数字类型示例
奶奶的报了这个错,我以为可以像java中字符串加数字的嘛 Traceback (most recent call last): File "./number.py", line ...