python输错了怎么返回原系统_修改了一下之前用Python写的登入系统

实现了之前文章里面自己知道不完善的部分,舍弃了麻烦的blocklist.txt文件,把登入函数重新写了一遍,中途遇到很多问题

花了不少时间研究字符串的改写,虽然是很简单的事情,但是还是做了很久

用了一种比较蠢的方法,考虑到文档中最后一行不一定换行符,每次增删的时候都要对换行符进行操作,不过暂时想不到更好的办法

'''登陆系统

要求:

1,可以选择创建新的用户,可以检测出用户名是否已存在

2,可以登陆原有的用户

3,输入密码错误三次后用户则被锁定'''

flag=True #循环控制符

def createuser():

f=open('userlist.txt','r')#打开已存在用户的文件,此处默认已有该文件,用户信息格式为用户名*密码*密码输入错误次数

name=f.readlines()

f.close()

while flag:

username=input('username:')

flag2=False#用户名已存在的标记符

for line in name:

if(username==line.split('*')[0]):

flag2=True

print("用户名已存在,请重新输入")

if flag2!=True:

password=input('password:')

f=open('userlist.txt','a')#创建新的用户

f.write('\n'+username)

f.write('*'+password+'*0')#创建新用户默认密码输入错误次数为0

f.close()

print("用户创建完毕")

break

main()

def login():#登入函数,输入密码错误三次则锁定用户

f1=open('userlist.txt','r+')

name=f1.readlines()

f1.close()

while flag:

count=0#用户名列表计数,每次输入完毕就清零

username=input('username:')

for line in name:

count+=1

if line.split('*')[0]==username:

if int(line.split('*')[2][0])==3:

print('该用户已经被锁定,将返回主菜单')

main()

else:

password=input('password:')

if line.split('*')[1]==password:

print('登陆成功!')

main()#登入成功,返回主菜单

else:

print('用户名或密码错误,请重试')

if(line.split('*')[2][0])=='0':

name[count-1]=name[count-1].strip()[:-1]#删除字符串最后一个字符

name[count-1]+='1\n'#修改密码错误次数

if(line.split('*')[2][0])=='1':

name[count-1]=name[count-1].strip()[:-1]#删除字符串最后一个字符

name[count-1]+='2\n'#修改密码错误次数

if(line.split('*')[2][0])=='2':

name[count-1]=name[count-1].strip()[:-1]#删除字符串最后一个字符

name[count-1]+='3\n'#修改密码错误次数

f2=open('userlist.txt','r+')

f2.writelines(name)#每次输错密码就复写文件,记录详细数据

f2.close()

break

info='''

------请输入相关数字-----

1.创建新的用户

2.登陆已有用户

3.退出程序

'''

def main():

print(info)

while flag:

i=input()

if i=='1':

createuser()

break

elif i=='2':

login()

break

elif i=='3':

exit()

else:

print("请输入正确的数字.")

main()#程序入口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值