使用流程:

1.程序启动后,显示欢迎信息,提示用户输入用户名;

2.判断用户是否存在,不存在则提示重新输入,或者关闭程序;客户存在则提示客户输入密码;

3.判断密码是否正确,如果不正确则提示用户重新输入,输入第三次依然错误,则锁定该账户;

4.密码输入正确时,后台进程判断用户是否被禁用,“禁用”时提示用户联系管理员;没有禁用则显示登录成功欢迎信息。

系统设计:

(循环登录次数增加,来禁用账户,试了 n 次,还在研究;初步实现用两个文件来实现用户验证)

1.本程序运行需要依赖两个基础文件;user_list:保存用户名以及密码 ;black_list:黑名单;

2.程序运行开始后,先读取两个文件的内容,按行依次循环遍历整个文件;

3.待用户输入用户名后验证用户是否存在;存在则提示输入密码,再校验密码;密码正确,开始校验用户是否在黑名单,如果在。则提示用户联系管理员;不存在,则登录成功。

4.密码输入错误,则循环,第三次还错误,将该用户加入黑名单。

login_user = input('请输入您的账号:')
black_list = open('/Users/kamil/PycharmProjects/s20160115_1/day1/homework/blacklist','r+')
#可写方式打开黑名单
lock_list = black_list.readlines()
#读取整个文件
for lock_user in lock_list:
#读取整个文件的 user 列表
lock = lock_user.split()
#去除空行影响
user_file = open('/Users/kamil/PycharmProjects/s20160115_1/day1/homework/name.txt','r+')
#可读方式打开user
user_list = user_file.readlines()
for user_info in user_list:
user = user_info.split()
# print(user)
if login_user == user[0]:
count = 3
#设置一个可循环次数
while count > 0 :
#保证 count>0
login_passwd = input('请输入您的密码:')
if login_passwd in user[1]:
#如果密码正确开始判断用户是否被锁定
if login_user == lock[0]:
print('账号之前被锁定,请联系管理员')
#用户在黑名单
exit()
else:
print('登录成功')
#不在黑名单
exit()
else:
count = count - 1
print('密码输入错误,您还有%d次机会'%(count))
#提示剩余的次数
else: black_list.write(login_user + '\n')
#把被锁定的账号写入到文件中换行保存
exit('账号已被锁定,下次禁止登录')
else:
print('账号不存在')
exit()
user_file.close()
lock_file.close()
#关闭文件
黑名单:
liukun
jim user_list jim 123ewq
lucy 321
liukun 3

Day1 login的更多相关文章

  1. node day1 login

    https://blog.csdn.net/weixin_33901641/article/details/85967847 vue之node.js的简单介绍 http://nodejs.cn/ ht ...

  2. day1作业--登录入口

    作业概述: 编写一个登录入口,实现如下功能: (1)输入用户名和密码 (2)认证成功后显示欢迎信息 (3)输错三次后锁定 流程图: readme: 1.程序配置文件: 黑名单文件blacklist.t ...

  3. 用户名密码登录小程序及input与raw_input区别。

    一.此次程序需要实现: 1.设定固定的用户名密码 2.用户名密码输入正确打印登录正确信息 3.仅仅运行三次登录 二.本次使用的python版本为: Windows下版本号: C:\Users\dais ...

  4. 学习《Spring 3.x 企业应用开发实战》Day-1

    Day-1 记录自己学习spring的笔记 提要:根据<Spring 3.x 企业应用开发实战>开头一个用户登录的例子,按照上面敲的. 1.项目分层

  5. Python实例---模拟微信网页登录(day1)

    第一步:创建Django项目 创建Django项目,添加App 创建静态文件夹static 修改settings.py文件 1. 取消csrf注释 2. 添加静态文件路径 # 添加静态文件路径 STA ...

  6. day1 python判断输入的密码是否正确

    _username = 'leon' _password = 'zyl' username = input("username:") password = input(" ...

  7. PHAR伪协议&&[CISCN2019 华北赛区 Day1 Web1]Dropbox

    PHAR:// PHP文件操作允许使用各种URL协议去访问文件路径:如data://,php://,等等 include('php://filter/read=convert.base64-encod ...

  8. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

  9. 打开程序总是会提示“Enter password to unlock your login keyring” ,如何成功关掉?

    p { margin-bottom: 0.1in; line-height: 120% } 一.一开始我是按照网友所说的 : rm -f ~/.gnome2/keyrings/login.keyrin ...

随机推荐

  1. 2014 Super Training #7 B Continuous Login --二分

    原题:ZOJ 3768 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3768 一个结论:一个正整数总能用不超过三个前n项相 ...

  2. linux命令学习-复制(cp,scp)

    linux为我们提供了两个用于文件的copy的命令,一个是cp,一个是scp.但是它们略有不同: cp主要用于在同一台电脑上,在不同的目录之间来回copy文件,scp主要是在不同的linux系统之间来 ...

  3. Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换

    转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17718579),请尊重他人的辛勤劳动成果,谢谢! 在And ...

  4. windows客户机连接gerrit的一个报错处理

    gerrit环境部署在linux服务器,windos客户机连接gerrit进行代码操作: 在windows客户机下载Git客户端 在“Git Bash”里使用 ”ssh-keygen -t rsa - ...

  5. isAnimated函数

    function isAnimated($obj){ var flag=false; if($obj.is(":animated")){ flag=true; } return f ...

  6. 17Mybatis_动态sql-sql片段

    这篇文章讲一下sql片段. 讲一下sql片段的的需求: 将上边实现的动态sql判断代码块抽取出来,组成一个sql片段.其它的statement中就可以引用sql片段. 方便程序员进行开发. 第一步我们 ...

  7. 在PLSQL中不能使用中文作为查询条件查询数据

    解决方法:  1.在oracle服务端的注册表中找到oracle-->key_oradb11g_home1,在右侧找到NLS_LANG,将其数值数据改为SIMPLIFIED CHINESE_CH ...

  8. C#中事件的继承

    C#中的子类无法调用父类的事件,可以通过在父类中创建一个方法来调用父类的事件,而子类通过调用父类的方法来触发事件. class parent { protected string name; publ ...

  9. 在opencv3中的机器学习算法练习:对OCR进行分类

    OCR (Optical Character Recognition,光学字符识别),我们这个练习就是对OCR英文字母进行识别.得到一张OCR图片后,提取出字符相关的ROI图像,并且大小归一化,整个图 ...

  10. chrome扩展

    chrome拓展开发实战:页面脚本的拦截注入 时间 2015-07-24 11:15:00  博客园精华区 原文  http://www.cnblogs.com/horve/p/4672890.htm ...