python作业:模拟登陆(第一周)
模拟登陆作业需求:
1. 用户输入帐号密码进行登陆
2. 用户信息保存在文件内
3. 用户密码输入错误三次后锁定用户
额外实现功能:
1.提示输入错误次数
2.输入已锁定用户会提示
3.用户不存在会提示
正确用户信息文件中以字典形式保存用户名密码:
{'name': 'password','cx':'123','even':'456','test':'ok'}
锁定用户信息文件中以列表形式保存锁定用户名:
['name']
流程图:

详细代码:(python3.6)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Even count = 0 # 为了记录需求中3次输入错误避免的次数,计数项赋初始值
load = True # 为了完成功能后退出,赋初始值
file = open("正确用户信息文件",'r',encoding='utf-8') # 打开正确用户信息文档,获取正确的用户名密码
file_wrong = open("锁定用户信息文件",'r+',encoding='utf-8') # 打开已锁定的用户信息文档,获取锁定的用户名密码
line = eval(file.readline()) # 将正确信息中的字符串转换成字典(原字符串为字典格式)
line_wrong = eval(file_wrong.readline()) # 将正确信息中的字符串转换成列表(原字符串为列表格式) def out(): # 将重复代码定义,功能是帮助跳出while循环并关闭已打开文档
global load # 声明全局变量
load = False # 赋值load,为了跳出while循环
file_wrong.close() # 关闭正确用户信息文档
file.close() # 关闭锁定用户信息文档 while load: # 判断是否已完成功能
name = input("请输入用户名:") # 输入用户名
password = input("请输入密码:") # 输入密码
if name in line and name not in line_wrong: # 判断用户名是否正确,和是否已被锁定
while count <= 3: # 判断是否已循环3次
if password == line[name]: # 判断用户名是否对应正确的密码
print("您已成功登陆") # 输出成功登陆信息
out() # 调用自定义out方法
break # 跳出本次循环
else: # 说明未输入正确的密码
count +=1 # 计数项自加一
msg_count = '''第%s次密码输入错误\n'''%(count) # 提示输入错误次数
print(msg_count) # 打印错误次数信息
if count < 3: # 小于三次错误输入,可以重新输入
password = input("密码错误,请重新输入密码:") # 重新输入密码
elif count == 3: # 判断是否已输错三次
print("已输错3次,账号已锁定") # 打印锁定提示信息
line_wrong.append(name) # 将已锁定信息加入锁定元组中
file_wrong.seek(0) # 输入指针移到开头,如果不移动会产生多个元组
file_wrong.write(str(line_wrong)) # 写入锁定信息
file_wrong.tell() # 获取当前的输入指针位置,如果不获取会产生多个元组
out() # 调用out方法
break
elif name in line_wrong: # 判断用户名是否在已锁定用户名中
print("该用户名已被锁定") # 打印已锁定通知信息
out() # 调用自定义out方法
break # 跳出当前循环
else: # 说明用户名不在正确用户名信息中
print("该用户名不存在") # 打印用户名输入错误信息
out() # 调用out方法
python作业:模拟登陆(第一周)的更多相关文章
- Python作业模拟登陆(第一周)
模拟登陆:1. 用户输入帐号密码进行登陆2. 用户信息保存在文件内3. 用户密码输入错误三次后锁定用户 思路: 1. 用户名密码文件为passwd,锁定用户文件为lock 2. 用户输入账号密码采用i ...
- 【小白学爬虫连载(10)】–如何用Python实现模拟登陆网站
Python如何实现模拟登陆爬取Python实现模拟登陆的方式简单来说有三种:一.采用post请求提交表单的方式实现.二.利用浏览器登陆网站记录登陆成功后的cookies,采用get的请求方式,传入c ...
- Python实现模拟登陆
大家经常会用Python进行数据挖掘的说,但是有些网站是需要登陆才能看到内容的,那怎么用Python实现模拟登陆呢?其实网路上关于这方面的描述很多,不过前些日子遇到了一个需要cookie才能登陆的网站 ...
- python爬虫模拟登陆
python爬虫模拟登陆 学习了:https://www.cnblogs.com/chenxiaohan/p/7654667.html 用的这个 学习了:https://www.cnblogs.co ...
- 软工作业-----Alpha版本第一周小结
软工作业-----Alpha版本第一周小结 Part1.第一周周计划记录 姓名 学号 周前计划安排 每周工作记录 自我打分 yrz(队长) 1417 1.进行任务分析 2.任务分配 ...
- Python学习之旅--第一周--初识Python
一:Python是一种什么样的语言? 1.语言的分类: a.编译型语言和解释性语言: 通常所说的计算机语言分为编译型和解释型语言.编译型语言典型的如C,C++,通常在程序执行之前必须经由编译器编译成机 ...
- python+requests模拟登陆 学校选课系统
最近学校让我们选课,每天都有不同的课需要选....然后突发奇想试试用python爬学校选课系统的课程信息 先把自己的浏览器缓存清空,然后在登陆界面按f12 如图: 可以看到登陆时候是需要验证码的,验证 ...
- Python脚本模拟登陆DVWA
目录 requests模拟登陆 Selenium自动化测试登陆 环境:python3.7 windows requests模拟登陆 我们登陆DVWA的时候,看似只有一步:访问网站,输入用户名和密码,登 ...
- Python 爬虫模拟登陆知乎
在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...
- python爬虫 模拟登陆校园网-初级
最近跟同学学习爬虫的时候看到网上有个帖子,好像是山大校园网不稳定,用py做了个模拟登陆很有趣,于是我走上了一条不归路..... 先上一张校园网截图 首先弄清一下模拟登陆的原理: 1:服务器判定浏览器登 ...
随机推荐
- border-radius给元素加圆角边框
border-radius给元素加圆角边框 例: border-radius:20px; /*所有角都使用半径为20px的圆角*/ 实心圆: 把宽度(width)与高度(height)值设置为一致(也 ...
- 【转】基于JavaMail的Java邮件发送
http://blog.csdn.net/xietansheng/article/details/51673073 http://blog.csdn.net/xietansheng/article/d ...
- Laplace算子和Laplacian矩阵
1 Laplace算子的物理意义 Laplace算子的定义为梯度的散度. 在Cartesian坐标系下也可表示为: 或者,它是Hessian矩阵的迹: 以热传导方程为例,因为热流与温度的梯度成正比,那 ...
- 爱她就用python给她画个小心心 ♥(ˆ◡ˆԅ)
from turtle import * a = Turtle() screensize(400, 300, "blue") setup(width=1300, height=65 ...
- 制作linux系统U盘并使用U盘安装CentOS7.6系统
目录 一.制作linux启动盘 1.1. 准备工作 1.2. 制作linux系统U盘 二.使用U盘安装Centos7.6 2.1. 使用U盘启动 2.2. 更改 ...
- Python生成器、装饰器
## 生成器 - 生成器是用来创建Python序列的一个对象 - 通常生成器是为迭代器产生数据的 - 例如range()函数就是一个生成器 - 每次迭代生成器时,它都会记录上一次调用的位置,并返回下一 ...
- NOI P1896 互不侵犯 状压DP
题目描述 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. 注:数据有加强(2018/4/25) ...
- POJ:2010-Moo University - Financial Aid
Moo University - Financial Aid Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10894 Acce ...
- keil调试问题记录
1.错误类型:L6218E:Underfined symbol &&&&&&&&& (referred form &&a ...
- Nginx安装,目录结构与配置文件详解
1.Nginx简介 Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设 ...