问题描述:
输入用户名和密码
如果输错三次则用户被锁定
实现思路
通过文件存储用户信息以及登录次数,每次判定用户名与密码时都将文件内容读入缓存,再有更新登录次数之后再写入文件中。
信息文件:log_message
用户名:account
密码:passwad
实现流程图
关键代码
log_message文件内容示例
root 123 0
liming 918003 1
hezhiman 619004 0
dashixiong 777777 0
login_page.py代码综合
flag = True
while flag:
account = input("Input your Account:")
passwad = input("Input your Passwad:")
f1 = open("log_message","r")
lines = f1.readlines() #将文件用户信息全部读入内存
line_count = len(lines)
for i in range(line_count):
strings = lines[i].split()
if strings[0] == account:
if int(strings[2]) < 3: #判断用户的错误次数是不是小于三次
if strings[1] == passwad:
print("Success logIn:welcome %s"%(strings[0]))
flag = False
break
else:
strings[2] = int(strings[2]) + 1
string2 = strings[0]+" "+strings[1]+" "+str(strings[2])+"\n"
lines[i] = string2
f2 = open("log_message", "w")
f2.writelines(lines) #将修改过错误次数的新字符内容写入文件,相当于更新
f2.close()
else:
print("Your account have been locked!Please try another account.")
f1.close()
学习之处
主要在于对文件读写的操作上的练习,包括全部内容的读取,返回一个列表,其中每行元素作为列表的一个字符串元素。
f1 = open("log_message","r")
lines = f1.readlines()
与之比较相似的读取文件方法.readline(),是用来读取当前行的内容,返回字符串。
写文件的操作如下:
f2 = open("log_message", "w")
f2.writelines(lines)
f2.close()