学习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

 

可否再精简代码?

可否加强功能?

转载于:https://www.cnblogs.com/Mask-z/p/5877795.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值