Python实战一

要求:用户输入用户名和密码错误三次,就对该用户进行锁定,不让其进行登录。

def match(name,pwd):
    ‘‘‘匹配用户输入的信息,进行判断‘‘‘
    falg = True
    while falg:
        with open("test",mode="r",encoding="utf8") as f_read,                open("test2",mode="r",encoding="utf8") as f1_read:
            fread = f_read.readlines()
            f1read = f1_read.readlines()
            for lines in f1read:#循环黑名单里的内容
                if name == lines:#判断是否在黑名单里,在就锁定退出
                    falg = False#退出while循环
                    print("This user has been locked!")
            if falg ==False:
                break #退出黑名单循环
            for line in fread:#循环用户信息库,进行判断是否正确
                if name in line and pwd in line :
                    verdict = True#输入正确为True,退出循环
                    break
                else:
                    verdict = False#输入错误为False,跳出本次循环
                    continue
            if verdict == True:#因为用户信息库里有很多用户信息,so,要拿出来判断
                print("welcome %s" % (name))
                falg = False
            if verdict == False:
                print("You input the username or password error")
                decide(name)#当输入错误时,调用decide函数
                falg = False

def decide(name):
    ‘‘‘写入用户输入错误的用户名,达到一定的次数,把该用户写入黑名单‘‘‘
    count = 0#计数器,用于记录输入错误用户的次数
    with open("test1",mode="a+",encoding="utf8") as f_add:
        f_add.write("\n"+name)#往文本写错误用户的信息
        f_add.seek(0)#把光标移到最开始位置
        fadd = f_add.readlines()#获取输入错误用户的信息
        for i in range(len(fadd)):#循环列表fadd
            fadd[i] = fadd[i].replace(‘\n‘, ‘‘)#去掉每行中的“\n”,用于下面的比对
        for line in fadd:#此时的fadd里已没有多余的空格,便于比对
            if name == line:#当有重复的用户名,累加一次
                count += 1 #匹配后自加1
            if count > 2:#当输入3次时,就调用black函数
                black(name)

def black(name):
    ‘‘‘黑名单,输入达到次数的用户,被锁定在黑名单‘‘‘
    with open("test2",mode="a+",encoding="utf8") as f_add:
        f_add.seek(0)#移动光标至最开始位置
        fadd = f_add.readlines()#获取黑名单信息
        for line in fadd:#循环黑名单,有重复的用户不会被写入
            if name == line :
                break  #有重复的信息退出,不再写入黑名单
        f_add.write("\n"+name)#写入黑名单

while True: #用户交互模式
    name = input("Please input your username:").strip()
    if name =="q":#输入q退出
        print("ByeBye!")
        break
    pwd = input("Please input your password:").strip()
    match(name, pwd)#调用match函数,匹配输入信息

  程序中test为用户的信息库:

michael---111
egon---222
tom---333

  test1:为缓存错误用户的信息,对错误用户进行计数。

  test2:为存储达到规定次数的用户信息,就是黑名单。使在名单里的用户无法完成登录操作。

  

时间: 2024-10-11 00:39:21

Python实战一的相关文章

机器学习实战一(kNN)

机器学习实战一(kNN) 跟着老师做一个项目,关于行车记录仪识别前方车辆,并判断车距,不太好做.本来是用OpenCV,做着做着,突然发现需要补习一下机器学习的内容.<机器学习实战(machine learing in action)>这本书买了很久了,当时还是看了很多人推荐,不过到现在才想起翻出来看.第二章kNN的例子刚跟着做完,书里讲的很清楚,代码条理分明,只不过我是用Python3实现的.具体的过程不再赘述,只是把自己的理解放在这里. 先来看看书里第一章的部分. 机器学习就是把无序的数据转

python实现对excel表的读写操作(一)

Part 1. 模块介绍: 使用python实现对excel表的读写操作有两个模块,分别为: 1. 对excel表读取模块 xlrd 0.9.3  :下载地址: https://pypi.python.org/pypi/xlrd 英文释意:The package is for reading data and formatting information from Excel files. 2. 对excel表写入模块 xlwt 0.7.5 : 下载地址:https://pypi.python.

【转】Delphi+Halcon实战一:两行代码识别QR二维码

Delphi+Halcon实战一:两行代码识别QR二维码 感谢网友:绝代双椒( QQ:51536348)的支持 本文是绝代双椒的作品,因为最近在忙zw量化培训,和ziwang.com网站的升级,halcon没时间操作. 不过,随着国内产业升级,机器人行业的发展,Delphi+Halcon的未来,是无可限量的. 其他网友,有halcon这方面作品的,有需要,也可以交给zw转发. 另外,zw正在争取培训机构合作,开办Delphi+Halcon方面的培训的项目,有兴趣的机构可以联系QQ:3578117

Maven实战一:Maven的安装与配置

Maven实战一Maven的安装与配置 一安装Maven 检查JDK安装 下载Maven 本地安装 1解压 2设置环境变量 3升级Maven 二安装目录分析 M2_HOME m2 三设置HTTP代理 确认是否能够直接访问公共的Maven中央仓库 如果真的需要代理检查代理服务器是否畅通 编辑m2settingsxml 四Eclipse对Maven的支持 五Maven安装最佳实践 设置MAVEN_OPTS环境变量 配置用户范围settingsxml 不要使用IDE内嵌的Maven Maven实战一:

php如何利用python实现对pdf文件的操作(读写、合并分割)

php如何利用python实现对pdf文件的操作 需求:在PHP里实现了把8.pdf的前4页pdf文件截取出来生成新的pdf文件. 详细步骤如下: 1. 安装python第三方库PyPDF2 前提:python必须是3.x版本以上,必要时需要升级pip3,命令如下:pip3 install --upgrade pipPyPDF 自 2010年 12月开始就不在更新了,PyPDF2 接棒 PyPDF, 在此使用PyPDF2. 安装命令:pip install PyPDF2 2.编写python脚本

zookeeper curator ( 实战一)

目录 zookeeper 的伪集群搭建 写在前面 1.1. zookeeper 安装&配置 1.1.1. 创建数据目录和日志目录: 1.1.2. 创建myid文件 1.1.3. 创建和修改配置文件 1.1.4. 配置文件实例 1.1.5. 修改启动命令 1.1.6. 启动伪集群 1.1.7. zk的客户端常用命令 写在最后 疯狂创客圈 亿级流量 高并发IM 实战 系列 zookeeper 的伪集群搭建 疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之 -22[ 博客园 总入口 ] 源码

数据-第19课-递归的应用实战一

第19课-递归的应用实战一 1. 递归的数学思想 (1)      递归是一种数学上分而自治的思想. (2)      递归将大型复杂问题转化为与原问题相同但规模较小的问题进行处理. (3)      递归需要有边界条件. l  当边界条件不满足时,递归继续进行. l  当边界条件满足时,递归停止. 2 . 递归的数学表示 n > 1 n==1 (1)斐波拉契数列递归解法 #include <stdio.h> int fibonacci(int n) { if( n > 1 ) {

Python基础--实战一:用xlrd模块读取excel文档

一.文件格式 二.第一种方式:列表方式以行为单位读取 Python格式显示: 代码: import osimport xlrd #导入xlrd模块,可在线安装 def Read_Excel_Case(path): work=xlrd.open_workbook(path) #打开文件 sheet=work.sheet_by_index(0) # 用下标的方式选择要读取文件中的工作表,也可用工作表的名称 sheet=work.sheet_by_name('Sheet1') Case_list=[]

自学Python之七 爬虫实战一

此文承接上文,让我们写一个简简单单的爬虫,循序而渐进不是吗?此次进行的练习是爬取前5页什么值得买网站中的白菜价包邮信息.包括名称,价格,推荐人,时间. 我们所需要做的工作:1.确定URL并获得页面代码. 2.用正则匹配每件商品我们所需要的内容 3.打印信息  我还是直接上代码吧,具体步骤看注释就好啦!(代码会引用HttpClient.py,可以参考之前的SmartQQ协议一文)! 1 # -*- coding: utf-8 -*- 2 import re,time,os 3 from HttpC