要求:输入用户名、密码进行认证,认证成功则欢迎,若输错三次会锁定最后一次输入的用户

知识点归纳:字典操作(items()方法)、字符串操作(如strip()、split()等)、文件读写(for line in f 变迭代器)、while&else循环、if判断

其他:分清变量类型,不要混淆整数和字符串数据类型

源码:

# -*- coding:utf-8 -*-
# Author: WUJiang # 分别存储用户密码、用户锁定标志
info_pw = {}
info_lock = {}
# 读取txt中记录并对上述变量赋值
with open("user_info.txt", "r") as f:
for line in f:
line = line.strip()
name = line.split(" ")[0]
pw = line.split(" ")[1]
lock_flag = line.split(" ")[2]
info_pw[name] = pw
info_lock[name] = lock_flag # -------------用户登录-------------------
login_num = 0
while login_num < 3:
login_name = input("enter your name:")
login_pw = input("enter your password:")
if login_name in info_pw.keys():
if info_lock[login_name] == "": # 易遗漏""
if info_pw[login_name] == login_pw:
print("welcome %s log in" % login_name)
break
else:
print("wrong password")
else:
print("user has been locked, please contact to admin")
break
else:
print("user does not exist")
login_num += 1
else:
print("input num is out of limit")
print("%s is locked" % login_name)
info_lock[login_name] = "" # 被这里坑惨了!!!易遗漏""!!!
# ----若锁定标志更新,需将更新数据写回txt--------
with open("user_info.txt", "w") as f:
for i, j in info_pw.items():
data = i + " " + j + " " + info_lock[i] + "\n"
f.write(data)

Python3学习实例上手(1)-----模拟登录认证的更多相关文章

  1. 【Python3爬虫】最新的模拟登录新浪微博教程

    一.写在前面 首先呢,由于之前重装系统,又要重新配置环境,然后还有一些别的事,导致我一直没有写爬虫了,不过现在又可以继续写了. 然后我这次说的模拟登录新浪微博呢,不是使用Selenium模拟浏览器操作 ...

  2. python之简单POST模拟登录

    宿舍自从换了校园网的认证系统就不再用客户端了,只能在网页登录.每次上网都要打开浏览器的话很不方便,而且我有时在ubuntu控制台上想联网但终端文本浏览器似乎不支持页面跳转,既然如此,何不写个客户端呢? ...

  3. python3 模拟登录网站

    最近学习python,因经常登录公积金网站查看公积金缴存还款情况,so网上找了写脚本,修改了一下,方便获取网页中的数据. 使用谷歌浏览器F12查看登录请求内容 1.request header需要参数 ...

  4. php_curl模拟登录有验证码实例

    <?php/** * @author 追逐__something * @version $id */define('SCRIPT_ROOT',dirname(__FILE__).'/');$ac ...

  5. Python3之利用Cookie模拟登录

    Python3之利用Cookie模拟登录 利用Cookie模拟登录步骤: 1.       在浏览器输入http://demo.bxcker.com,输入用户名和密码登录. 2.登录成功点" ...

  6. JAVA模拟登录实例

    近期在做公司一个web项目.要求在我们的系统上,可以显示其它站点上的数据. 刚開始接到这个任务时,还在想.简单的非常.直接用UrlConection直接进入该网页,然后获取该网页的html,取到想要的 ...

  7. cas 3.5.3服务器搭建+spring boot集成+shiro模拟登录(不修改现有shiro认证架构)

    因为现有系统外部接入需要,需要支持三方单点登录.由于系统本身已经是微服务架构,由多个业务独立的子系统组成,所以有自己的用户认证微服务(不是cas,我们基础设施已经够多了,现在能不增加就不增加).但是因 ...

  8. 【Python3爬虫】破解时光网登录加密参数并实现模拟登录

    一.站点分析 MTime 时光网是一个电影媒体与电商服务平台,而这次做的模拟登录则是依靠其手机端站点,站点地址为:https://m.mtime.cn/#.切换到登录页面,再分别输入账号和错误的密码, ...

  9. 实战模拟│JWT 登录认证

    目录 Token 认证流程 Token 认证优点 JWT 结构 JWT 基本使用 实战:使用 JWT 登录认证 Token 认证流程 作为目前最流行的跨域认证解决方案,JWT(JSON Web Tok ...

随机推荐

  1. java基础知识(9)---异常

    异 常: 异常:就是不正常.程序在运行时出现的不正常情况.其实就是程序中出现的问题.这个问题按照面向对象思想进行描述,并封装成了对象.因为问题的产生有产生的原因.有问题的名称.有问题的描述等多个属性信 ...

  2. ES6学习之Generator函数

    概念:可以把Generator 函数理解成状态机(封装了多个内部状态)或者是一个遍历器对象生成函数 写法:Generator函数的定义跟普通函数差不多,只是在function关键字后面加了一个星号 f ...

  3. groupadd添加新组

    一.groupadd命令用于将新组加入系统. 格式groupadd [-g gid] [-o]] [-r] [-f] groupname 主要参数 -g gid:指定组ID号. -o:允许组ID号,不 ...

  4. [cf839d]Winter is here容斥原理

    题意:给定一个数列${a_i}$,若子序列长度为$k$,最大公约数为$gcd$,定义子序列的权值为$k*\gcd (\gcd  > 1)$.求所有子序列的权值和. 答案对10^9+7取模. 解题 ...

  5. 【总结整理】JavaScript的DOM事件学习(慕课网)

    事件:在文档或者浏览器窗口中发生的一些,特定的交互瞬间 HTML和JavaScript的交互通过事件 来实现 比如:1.滚动条向下滑动,加载图片 2.图片轮播,鼠标由2-5页调换 本章内容1.理解事件 ...

  6. layui 文件上传加进度条

    1.页面 <div class="layui-row layui-col-space5"> <div class="layui-form-item&qu ...

  7. This account is currently not available

    今天在linux下切换用户发现提示This account is currently not available,说是无效用户了后来网上查了一下发现是用户的shell禁止登录了,解决方法只要开启she ...

  8. 6.7 安装ant

    准备好安装包: 安装vim: 解压: tar -xzvf apahce-ant-1.10.1-bin.tar.gz 这里,我将apache-ant-1.10.1-bin.tar.gz复制并解压到了/h ...

  9. jQuery :odd 选择

    <!DOCTYPE html><html><head><meta charset="utf-8"><script src=&q ...

  10. Cactus详细讲解

    Cactus建议一年以上有经验的人玩,刚入门MVC,不了解下列组件请先自行学习,切勿好高骛远. Cactus的组成(基于.net4.5.2):Dapper+MVC4+autofac 前端css框架pu ...