zoukankan      html  css  js  c++  java
  • 用户输错三次密码锁定用户名

    #!/usr/bin/env python
    #author:zhanglei

    #导入模块
    import getpass
    Exit = ['q','quit']

    #定义一个空列表
    lock = []
    username = input("input username: ").strip()


    #已只读的方式打开lock黑名单文件
    lock_file = open('lock.txt','r').readlines()
    for i in lock_file:
    line = i.strip(' ')
    lock.append(line) #从文件读取的内容添加到lock列表内



    #判断输入的用户名是否在lock黑名单里
    if username in lock:
    print ("33[31;5m账户已被锁定,请联系管理员!33[0m")
    else:
    counter = 0
    while True:
    counter +=1
    f = open('user.txt','r').readlines() #已只读的方式打开user文件
    password = getpass.getpass() #已密文的方式输入密码
    break_flag = False #加入break_flag进行判断是否为真,为真则跳出循环
    if password in Exit:break #判断用户输入的密码是否在Exit列表内,在则跳出
    for I in f:
    lists = I.strip().split() #将文件转换为列表
    if username == lists[0] and password ==lists[1]: #分别判断用户名密码是否和lists列表内的第一第二个元素相等
    print ("33[35;2mWelcome Login...33[0m")
    break_flag = True
    break
    else:
    continue
    if break_flag is True: #判断break_flag是否为真
    break
    else:
    if len(password) ==0: #如果password变量的字符长度为0则跳出本次循环继续下一次循环,同时把counter值设置为0
    counter =0
    continue
    else:
    if counter ==3: #如果密码输入次数为3,则锁定用户名
    f = open('lock.txt','a') #已追加的方式打开lock文件
    f.write(username+' ')
    f.flush()
    f.close()
    print ("33[31;5m输入的次数已超三次,请解锁33[0m")
    break
  • 相关阅读:
    12.1
    我的火车头
    头文件优化时间
    一些姿势
    CodeForces
    CodeForces
    [SDOI 2015] 约数个数和
    BZOJ
    [国家集训队] middle
    鹅的问题
  • 原文地址:https://www.cnblogs.com/zl-py/p/5485401.html
Copyright © 2011-2022 走看看