python之用户登录三次锁定
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之用户登录三次锁定相关的知识,希望对你有一定的参考价值。
基于文件存储的用户登录程序(3次登录失败,锁定用户)
思路:
1.login.user是存放用户id及密码的文件,也就是白名单;
2.lock.user是存放被锁定的用户id的文档,默认为空,也就是黑名单;
3.程序会先检查输入的用户名是否存在于黑名单中,如果有,则退出,并提示此用户被锁定,否则继续检查白名单;
4.程序先对login.user里的合法用户id进行判断,若连续输入用户id错误达三次程序直接退出;
4.程序最后会对输入的id,对应的密码进行判断,输入密码有3次机会,连续三次错误则会锁定用户id并且退出.
#!/usr/bin/env python # -*- coding:utf-8 -*- # @Time # 读取login.py文件,将内容赋值给变量login_f1,并关闭 f1 = open(‘login.user‘,‘r‘) login_f1 = f1.read() f1.close() # 将变量login_f1的值,进行分片,分隔符为‘:‘ # 提取第0位元素,赋值给另一个变量ruser ruser = login_f1.strip().split(":")[0] # 提取第1位元素,赋值给另一个变量rpwd rpwd = login_f1.split(":")[1] # 读取黑名单文件lock.user,将内容赋值给变量lock_f2,并关闭 f2 = open(‘lock.user‘,‘r‘) lock_f2 = f2.readlines() f2.close() # 定义一个变量,用于计数 t = 0 # 当t小于3时,无限循环。 while t < 3: name = input("请输入帐号:") for a in lock_f2: if name == a: print("抱歉!此帐号已被锁定。") exit() for b in login_f1: if name == ruser: t = 0 while t < 3: pwd = input("请输入密码:") if pwd == rpwd: print("Welcome!%s" %name) exit() else: print("Sorry!wrong password.") t += 1 else: print("抱歉,错误次数达到3次,该账户被锁定!") f = open(‘lock.user‘, ‘w‘) f.write(‘%s‘ % name) f.close() exit()
测试结果:
正确输入:
Your name:jack Your password:123.com Welcome!jack
错误输入:
请输入帐号:jack 请输入密码:123 Sorry!wrong password. 请输入密码:123 Sorry!wrong password. 请输入密码:123 Sorry!wrong password. 抱歉,错误次数达到3次,该账户被锁定!
错误输入3次以后:
请输入帐号:jack
抱歉!此帐号已被锁定。
以上是关于python之用户登录三次锁定的主要内容,如果未能解决你的问题,请参考以下文章