学习Python 登入接口重写版

要求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

 

能否再精简代码?

能否增强功能?

相关文章
相关标签/搜索