1
建立一个名称为u_info的文件用来存储用户名和密码信息,如图所示
文件内容如下:
zhangxiaosan-123456
lixi-123456
2
写登录功能的函数,用def代码创建名称为login的函数,参数为user和pwd
def login(user,pwd):
3
用只读模式打开我们刚刚的文件 u_info,这个文件必须和我们代码文件在同一个目录下,具体代码如下:
f = open("u_info",mode="r",encoding="UTF-8")
编码格式设置成utf-8,把读取结果放到变量f当中
4
用for循环逐行读取文件中的内容,代码如下:
for line in f:
5
用if循环做判断,对比传过来的用户名密码参数是否正确,如果一致则返回真,如果不一致则返回假,代码如下:
if line.strip() == user+"-"+pwd:
f.close()
return True
else:
f.close()
return False
用strip方法把空行和回车符号去掉,并且在return前关闭打开的文件
6
上面的函数实现了基本的登录功能,下面我们调用上面的函数,实现次数的控制
建立一个记录次数的变量s,设置初始值为0
7
写while循环,条件为s小于3的时候进入,在循环内用input语句和用户交互,提示输入用户名和密码,代码如下:
while s < 3:
ret = login(input("请输入您的用户名:"),input("请输入您的密码:"))
8
完善整个判断功能,用if语句判断用户名和密码是否正确,如果正确打印出登录成功,并且跳出整个循环,如果错误则提示登录失败,重新登录。并且把s+1
最后如果跳出循环后s=3,那么提示用户登录次数过多,已经锁定
代码如下:
if login(uname, pwd):
print("登录成功")
break
else:
print("登录失败,请重新登录")
s+=1
if s ==3:
print("登录次数过多,已经锁定")
9
整体代码总结和运行效果:
def login(user,pwd):
f = open("u_info",mode="r",encoding="UTF-8")
for line in f:
if line.strip() == user+"-"+pwd:
f.close()
return True
else:
f.close()
return False
s = 0
while s < 3:
ret = login(input("请输入您的用户名:"),input("请输入您的密码:"))
if ret:
print("登录成功")
break
else:
print("登录失败,请重新登录")
s+=1
if s ==3:
print("登录次数过多,已经锁定")
END