用户三次登录锁定

需求
    编写登陆接口
    让用户输入用户名密码
    认证成功后显示欢迎信息
    输错三次后退出程序
    可以支持多个用户登录
    用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态
测试信息
   用户           密码
   alex            123
   egon            456

   锁定用户        密码
   lyndon           789

流程图:

wKioL1loNs2RweeYAACDtJfn_VE687.png

脚本实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/env python
# -*- coding:utf-8 -*-
# 用字典定义用户名和密码
db = { 'egon' : '123' , 'alex' : '456' , 'lyndon' : '789' }
"""
需要先创建文件user_list
a、a+ 能创建文件,但不能按行读取文件内容
w、w+ 能创建文件,但每次执行会清空文件内容
r、r+ 能按行读取文件内容,但不能创建不存在的文件
只能手动创建了,心累。。。
"""
# 按行读取user_list内容,以列表形式赋值给lock_list
f = open ( 'user_list' , 'r' )
lock_list = f.readlines()
lock_list = lock_list.__str__()
f.close()
 
while  True :
     print  ( """
==========================
【E】     登录
【Q】     退出
==========================
     """ )
     choice = input  ( '请输入你的选择:' )
     if  choice.lower()  = =  'q' :
         break
     elif  choice.lower() ! =  'q'  and  choice.lower() ! =  'e' :
         print  ( '输入错误,请重新输入' )
     if  choice.lower()  = =  'e' :
         username = input  ( '请输入用户名:' )
         if  username  not  in  db:
             print  ( '没有此用户!' )
             continue
         elif  username  in  lock_list:
             print  ( '该用户已锁定,请联系管理员解锁!' )
             continue
         else :
             for  in  range ( 3 ):
                 passwd = input  ( '请输入密码:' )
                 if  passwd ! =  db.get(username):
                     print  ( '密码错误!' )
                     if  = =  2 :
                         =  open ( 'user_list' , 'a' )
                         f.writelines( '%s\n' % username)
                         f.close()
                         print  ( '密码错误三次,用户已锁定!' )
                         exit()
                 else :
                     print  ( '登陆成功!' )
                     break

本文转自lyndon博客51CTO博客,原文链接http://blog.51cto.com/lyndon/1947417如需转载请自行联系原作者

迟到的栋子
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值