模拟登陆作业需求:

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作业:模拟登陆(第一周)的更多相关文章

  1. Python作业模拟登陆(第一周)

    模拟登陆:1. 用户输入帐号密码进行登陆2. 用户信息保存在文件内3. 用户密码输入错误三次后锁定用户 思路: 1. 用户名密码文件为passwd,锁定用户文件为lock 2. 用户输入账号密码采用i ...

  2. 【小白学爬虫连载(10)】–如何用Python实现模拟登陆网站

    Python如何实现模拟登陆爬取Python实现模拟登陆的方式简单来说有三种:一.采用post请求提交表单的方式实现.二.利用浏览器登陆网站记录登陆成功后的cookies,采用get的请求方式,传入c ...

  3. Python实现模拟登陆

    大家经常会用Python进行数据挖掘的说,但是有些网站是需要登陆才能看到内容的,那怎么用Python实现模拟登陆呢?其实网路上关于这方面的描述很多,不过前些日子遇到了一个需要cookie才能登陆的网站 ...

  4. python爬虫模拟登陆

    python爬虫模拟登陆 学习了:https://www.cnblogs.com/chenxiaohan/p/7654667.html  用的这个 学习了:https://www.cnblogs.co ...

  5. 软工作业-----Alpha版本第一周小结

            软工作业-----Alpha版本第一周小结   Part1.第一周周计划记录 姓名 学号 周前计划安排 每周工作记录 自我打分 yrz(队长) 1417 1.进行任务分析 2.任务分配 ...

  6. Python学习之旅--第一周--初识Python

    一:Python是一种什么样的语言? 1.语言的分类: a.编译型语言和解释性语言: 通常所说的计算机语言分为编译型和解释型语言.编译型语言典型的如C,C++,通常在程序执行之前必须经由编译器编译成机 ...

  7. python+requests模拟登陆 学校选课系统

    最近学校让我们选课,每天都有不同的课需要选....然后突发奇想试试用python爬学校选课系统的课程信息 先把自己的浏览器缓存清空,然后在登陆界面按f12 如图: 可以看到登陆时候是需要验证码的,验证 ...

  8. Python脚本模拟登陆DVWA

    目录 requests模拟登陆 Selenium自动化测试登陆 环境:python3.7 windows requests模拟登陆 我们登陆DVWA的时候,看似只有一步:访问网站,输入用户名和密码,登 ...

  9. Python 爬虫模拟登陆知乎

    在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...

  10. python爬虫 模拟登陆校园网-初级

    最近跟同学学习爬虫的时候看到网上有个帖子,好像是山大校园网不稳定,用py做了个模拟登陆很有趣,于是我走上了一条不归路..... 先上一张校园网截图 首先弄清一下模拟登陆的原理: 1:服务器判定浏览器登 ...

随机推荐

  1. 会话技术: Cookie Session JSP

    ##  Cookie A..概念:客户端会话技术,将数据保存到客户端 B.使用步骤: 1.创建Cookie对象,绑定数据 new Cookie(String  name, String value) ...

  2. service 入门

    https://www.cnblogs.com/keguangqiang/p/3663086.html#undefined

  3. Maven中maven-source-plugin,maven-javadoc-plugin插件的使用:

    摘要:今天领导说要把项目通过maven生产源码包和文档包并发布到自己的私服上,经过查看mavne官网发现有两个maven插件可以做到这些工作,一个是maven-source-plugin,另一个是ma ...

  4. ADO.net中常用的对象有哪些?

    ADO.net中常用的对象有哪些?分别描述一下. 答:Connection 数据库连接对像 Command 数据库命令 DataReader 数据读取器 DataSet 数据集 DataReader与 ...

  5. python面试,日更

    l1 = [11, 2, 3, 22, 2, 4, 11, 3] 去重并保持原来顺序 # 集合方法 l2 = list(set(l1)) l2.sort(key=l1.index) # 按照l1索引排 ...

  6. SQL基础语句汇总

    连接数据库 1 mysql -h10.20.66.32 -uroot -p123456 -h后面是mysqlServer所在地址,-u后面是用户名,-p后面是密码 查看数据库 1 show datab ...

  7. LeetCode804. Unique Morse Code Words

    题目 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", "b" 对应 ...

  8. .NET向WebService传值为decimal、double、int、DateTime等非string类型属性时,服务器端接收不到数据的问题

    最近在做CRM项目时,使用C#调用SAP PI发布的WebService服务时遇到的问题: 向WebService传值为decimal.double.int.DateTime等非string类型数据时 ...

  9. Linux 个人服务搭建脱坑实录

    环境:VMware.Centos7 64位.jdk1.7.Tomcat 7 说明:本是个人的爬坑经历所总结出来的,记录一下心得.也给有需要的人提供一些帮助.引用了一些大神的笔记,非常感谢,希望大神们不 ...

  10. PL/sql中如何声明变量,常量,控制语句及for,loop,while和顺序控制的使用

    pl/sql 什么是PL/SQL PL/SQL是结合oracle过程语言和机构化查询运行(SQL) 的一种扩展语言.使用PL/SQL可以编写具有很多高级功能的程序,有以下优点 PL/SOL可以采用过程 ...