要求:

输入用户名密码正确,提示登录成功,

输入三次密码错误,锁定账户。

开始:

使用两个文件:

密码账户文件

文件格式:

jason    23456

tom       56789

tang      345687

boke      567890

密码锁定文件格式:

tom

jason

流程图

代码

使用了

字典:dict()-----将用户文件中的账户密码生成字典,可以对应用户名与密码

生成如此格式:{username1:password1,username2:password2}

循环

使用循环计数账户及密码三次机会,账户三次后提示不存在退出程序,密码三次不正确提示对应账户被锁定

判断

判断账户是否存在及被锁定,密码是否正确

#!/usr/local/python/bin/python
#-*- coding:utf-8 -*-
#Author:辰星心语
import os f = open("user.txt","r")
f2 = open("lockuer.txt","r")
lock_user = f2.readlines()
m = f.readlines()
z = []
#将用户名密码输入为列表
for i in m:
y = i.split()
q = z.append(y)
print(z)
#将用户文件中的账户密码对应成字典方式
dict1 = dict(z)
#为了方便理解输出生成后的字典
print(dict1)
for count in range(4):
user = input("请输入您的账户:")
#判断锁定文件中是否存在输入的用户名密码,若有退出程序
for i in lock_user:
user_lock = i.strip('\n')
if user == user_lock:
print("您的账户已经被锁定!!!")
exit()
#如果锁定文件没有输入的用户名则判断用户是否存在于账户密码所在的字典中
if user in dict1:
print("您的账户输入正确!!")
#账户存在字典之中,执行以程序,三次输入正确密码的机会
for count_p in range(4):
password = input("请输入您的密码:")
#输入密码后判断输入的密码是否与账户匹配,如果匹配则输出欢迎信息并退出程序
if password == dict1[user]:
print("您的密码正确!!!\n欢迎进入系统!!!!")
exit()
else:
#输入密码错误则提示密码错误及可输入密码的次数
print("您输入的密码错误!!!\n请您重新输入密码!!!\n你还有 %s 次机会"%(3-count_p))
#密码输入总共三次,次数使用完后提示密码输入次数太多,冰将账户锁定,写书锁定账户文件中
if count_p == 3:
print("您输入错误的密码次数太多!!!\n您的账号已经被锁定,请联系管理员")
f2 = open("lock.txt","a")
f2.write(user+"\n")
exit()
#判断账户不存在于账户文件中,则有输入超过三次提示账户不正确,并机会用完,退出程序
if count == 3:
print("您输入不正确的账号次数太多\n退出程序")
break
else:
print("账户不存在,请重新输入\n您还有%s次机会"%(3-count))
f.close()
f2.close()

  以上是临时写的,若是有问题或其他建议,也希望大家可以指出来

谢谢

python 初学之账户登录的更多相关文章

  1. Python 爬虫之模拟登录

    最近应朋友要求,帮忙爬取了小红书创作平台的数据,感觉整个过程很有意思,因此记录一下.在这之前自己没怎么爬过需要账户登录的网站数据,所以刚开始去看小红书的登录认证时一头雾水,等到一步步走下来,最终成功, ...

  2. python+selenium模拟京东登录后台

    python+selenium模拟京东登录后台 import json from time import sleep from selenium import webdriver #from sele ...

  3. 练习:python 操作Mysql 实现登录验证 用户权限管理

    python 操作Mysql 实现登录验证 用户权限管理

  4. 症状解决,原因不详的用非默认管理权限账户登录COM注册成功但找不到类型问题

    http://social.msdn.microsoft.com/Forums/en-US/11f01ceb-52a4-438f-b7ef-727ce7a3e191/atl-project-in-vs ...

  5. win10 用微软账户登录无法访问共享的问题

    百度找了一大堆可以解决的,最终最简单的方式(可能是bug): 测试了一下,Win10用微软账户登录的,连局域网共享时,输入用户名的时候,前面加个乱七八糟的域名就可以访问了: 比如: 用户名:   ba ...

  6. ubuntu12.04管理员账户登录不了桌面,只能客人会话登录

    ubuntu12.04管理员账户登录不了桌面,只能客人会话登录 求助!!ubuntu12.04管理员账户登录不了桌面,只能客人会话登录. 登录管理员账户时,输入密码后,一直在登录界面循环 费了好大劲啊 ...

  7. ubuntu12.04管理员账户登录不了桌面,仅仅能客人会话登录

    ubuntu12.04管理员账户登录不了桌面,仅仅能客人会话登录 求助!!ubuntu12.04管理员账户登录不了桌面,仅仅能客人会话登录. 登录管理员账户时,输入password后,一直在登录界面循 ...

  8. python paramiko模拟ssh登录,实现sftp上传或者下载文件

    Python Paramiko模块的安装与使用详解 paramiko是短链接,不是持续链接,只能执行你设定的shell命令,可以加分号执行两次命令. http://www.111cn.net/phpe ...

  9. 测试开发Python培训:模拟登录新浪微博-技术篇

    测试开发Python培训:模拟登录新浪微博-技术篇   一般一个初学者项目的起点就是登陆功能的自动化,而面临的项目不同实现的技术难度是不一样的,poptest在做测试开发培训中更加关注技术难点,掌握技 ...

随机推荐

  1. caffe源码分析 vector<Blob<Dtype>*>& bottom

    Blob:4个维度 n x c x h x w: bottom[0] .bottom[1]代表该层有几个输入. bottom[0]->count(): 输入中,元素的总维数(个数) bottom ...

  2. lynx---CentOS终端访问IP

    1.官网 http://lynx.isc.org 2.稳定版本 http://invisible-mirror.net/archives/lynx/tarballs/lynx2.8.8rel.2.ta ...

  3. D3.js从入门到“放弃”指南

    前言 近期略有点诸事不顺,趁略有闲余之时,玩起D3.js.之前实际项目中主要是用各种chart如hightchart.echarts等,这些图形库玩起来貌都是完美的,一切皆可配置,但几年前接触了D3之 ...

  4. Linq Take和Skip详解

    Take()方法的作用就是:从查询结果中提取前n个结果. Skip()方法正好是Take()方法的反面,它可以跳过前n个结果,返回剩余的结果. 例如:查找年龄最大的3个人 表Student的数据是 N ...

  5. indexed database IndexedDB

    Indexed Database API 目的是提供一个可供javascript存储和检索对象,并且还能进行查询,搜索等数据库操作   设计为几乎完全异步,因此绝大部分操作都稍后执行,因此每次操作都应 ...

  6. Formatting the event object

    尽量将IE与DOM函数事件对象不同的性质或方法转成DOM标准   EventUtil.formatEvent = function (oEvent) {    if (isIE && ...

  7. ionic3.0--angular4.0 引入第三方插件库的方法

    ionic3.0 引入第三方插件 (swiper),方法很多,现详细说明下官方推荐(typings)做法. 1.全局安装Typings 1. npm install -g typings  2.搜索你 ...

  8. JS-类型转换

    类型转换 值 转字符串 数字 布尔值 对象 undefined 'undefined' 0 false throws TypeError null 'null' 0 false throws Type ...

  9. Spring的IOC容器第一辑

    一.Spring的IOC容器概述 Spring的IOC的过程也被称为依赖注入(DI),那么对象可以通过构造函数参数,工厂方法的参数或在工厂方法构造或返回的对象实例上设置的属性来定义它们的依赖关系,然后 ...

  10. linux操作系统基础篇(九)

    shell脚本的运算符与流程控制 1.运算符 1.1 算术运算符 + - * / % [root@MiWiFi-R3-srv ~]# echo $[3+1]4 1.2 关系操作 与(())连用 < ...