要求spa
1.输入用户名与密码code
2.验证成功显示欢迎页blog
3.输入错误3次,锁定用户名ip
也是看了很是多的大神,老师,师兄的代码启发,才写出以下的重写版input
这条代码也是瞎几把搞才研究出来的,具体原理不是很懂it
name = dict(k.strip().split('=') for k in name_list.readlines())
若是把 strip() 和 split('=') 的位置互换一下 那么就会报错 缘由估计是 strip() 只能对 str类型操做
已知BUG:
1.输入2次同一个正确的用户名和错误的密码,第3次输入另外一个正确的用户名和错误的密码,则锁定第3次输入的用户名
用户名与密码文件 name_list.ini 内容以下:class
mask=123原理
jake=123qq密码
qb11=123qweim
锁定用户列表文件 lock_list.ini 内容默认为空:
i = 0 g = 3 w = 0 j = 0 print(''' ************************************* 欢迎使用登入系统 *************************************''') while i < 4: i = i + 1 i_name = input('请输入您的用户名:') #输入用户名
name_list = open('name_list.ini','r') #读取用户名和密码字典
name = dict(k.strip().split('=') for k in name_list.readlines()) name_list.close() lock_list = open('lock_list.ini','r')# 读取被锁定用户名
lock = [k.strip() for k in lock_list.readlines()] lock_list.close() lk = i_name in lock #输入的用户名 对比 锁定列表
f = i_name in name #输入的用户名 对比 注册已用户名
if len(i_name) == 0 or j == 3: #检查输入的用户名是否为空
print('您输入的用户名为空') j = j + 1
if j == 3: print('您已经连续输入3次空用户名了,系统强制退出') i = 4
elif lk == True: print('您的用户名已被锁定,请联系管理员') i = i + 4
elif f == False: w = w + 1
print('您输入的用户名无效,请从新输入') if w == 3: print('您已经输入了3次数无效用户名了,系统强制退出,') i = 4
elif f == True: #若是用户名正确 则取其密码,让用户输入密码
mima = name[i_name] i_mima = input('请输入您的密码:') if i_mima == mima: print('欢迎光临,%s'%i_name) #密码正确 显示欢迎页
i = 4
else: g = g - 1
print('用户名或密码错误\n(您还有%s次机会)'%g) if g == 0: print('您已经输入了3次错误的密码,已被系统锁定') a = open('lock_list.ini','a')#密码错误3次,写入用户名到锁定列表
a.write(str(i_name + '\n')) a.close() i = 4
能否再精简代码?
能否增强功能?