学习Python 登入接口重写版
要求
1.输入用户名与密码
2.验证成功显示欢迎页
3.输入错误3次,锁定用户名
也是看了非常多的大神,老师,师兄的代码启发,才写出如下的重写版
这条代码也是瞎几把搞才研究出来的,具体原理不是很懂
name = dict(k.strip().split('=') for k in name_list.readlines())
如果把 strip() 和 split('=') 的位置互换一下 那么就会报错 原因估计是 strip() 只能对 str类型操作
已知BUG:
1.输入2次同一个正确的用户名和错误的密码,第3次输入另一个正确的用户名和错误的密码,则锁定第3次输入的用户名
用户名与密码文件 name_list.ini 内容如下:
mask=123
jake=123qq
qb11=123qwe
锁定用户列表文件 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
可否再精简代码?
可否加强功能?