首页 > 代码库 > python学习一:用户登录
python学习一:用户登录
一,用户登录需求:
1,用户名,密码要保存在文件中。
2,用户可以尝试登录三次,三次之后账户锁定,用户锁定信息保存在文件中,用户输入正确重置锁定信息。
程序代码:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
username = [] #-----------------------------------------------
for line in open(‘user.txt‘):
line=line.replace(‘\n‘,‘‘).split() #从user.txt文件中取出用户名,保存到列表username中
username.append(line[0]) #-----------------------------------------------
password = [] #-----------------------------------------------
for line in open(‘user.txt‘):
line=line.replace(‘\n‘,‘‘).split() #从user.txt文件中取出密码,保存到列表password中
password.append(line[1]) #-----------------------------------------------
counter = [] #-----------------------------------------------
for line in open(‘user.txt‘):
line=line.replace(‘\n‘,‘‘).split() #从user.txt文件中取出用户账户状态,保存到列表counter中
counter.append(line[2]) #-----------------------------------------------
new_counter = [] #-----------------------------------------------
for n in counter:
new_counter.append(int(n)) #将counter中的元素转换成数值型字符
counter = new_counter #-----------------------------------------------
flag = True
while flag:
if min(counter) < 3: #判断所有用户的状态,只要有用户可登录,就允许程序运行
usname = input("请输入用户名:")
if usname in username: #如果输入的用户名在用户列表中
p = username.index(usname) #确定输入的用户名在列表中的位置
while True:
if counter[p] < 3: #判断所选用户是否锁定
psword = input("请输入密码:")
if psword == password[p]:
print("恭喜!用户名,密码输入正确!")
counter[p] = 0 #-----------------------------------------------
newuser = open("user.txt",‘w‘)
for i in range(len(username)): #用户密码输入正确,重置用户状态,并写入用户文件
newuser.write(‘%s %s %d\n‘ % (username[i],password[i],counter[i]))
newuser.close() #-----------------------------------------------
flag = False #将最外层循环的值置为假,用来退出最终循环
break #退出当前循环
else:
print("用户名密码错误......")
counter[p] += 1 #计数器自加1
newuser = open("user.txt",‘w‘) #-----------------------------------------------
for i in range(len(username)): #将用户错误次数写入用户文件
newuser.write(‘%s %s %d\n‘ % (username[i],password[i],counter[i]))
newuser.close() #-----------------------------------------------
break
else:
print("此用户被锁定......") #判断用户状态为锁定后提示用户已定
break
else:
print("无此用户,请重新输入") #用户名输入错误,提示用户重新输入
else:
print("所有用户均已被锁定,无法开启程序......") #判断所有用户状态均已锁定,程序退出
break
用户文件:
songyang sy123 0 #第一列为用户名,第二列为密码,第三列为用户状态
admin ad123 0
程序重要位置解释:
username = [] #创建一个名称为username的空列表
for line in open(‘user.txt‘): #遍历user.txt文件的每一行
line=line.replace(‘\n‘,‘‘).split() #将user.txt文件中的每一行的所有值分别存入line的列表,replace()函数
#是将每行结尾的换行符替换成空格,split()函数是以空格为标志,将文件的每一行分割成列表
username.append(line[0]) #将line列表中的第一个元素保存到username列表中,形成用户名列表
newuser = open("user.txt",‘w‘) #以写方式打开用户文件,此时文件中的内容会被读入内存,程序会删除文件内容
for i in range(len(username)): #程序检测username列表有几个元素,循环几次
newuser.write(‘%s %s %d\n‘ % (username[i],password[i],counter[i])) #将所有列表username,password,counter的内容写入到文件中
newuser.close() #关闭文件
程序运行错误释义:
此为相应选择,循环等语句后忘记加“:”导致
此为相应报错行没有缩进导致。
python学习一:用户登录
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。