Day1 login
使用流程:
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的更多相关文章
- node day1 login
https://blog.csdn.net/weixin_33901641/article/details/85967847 vue之node.js的简单介绍 http://nodejs.cn/ ht ...
- day1作业--登录入口
作业概述: 编写一个登录入口,实现如下功能: (1)输入用户名和密码 (2)认证成功后显示欢迎信息 (3)输错三次后锁定 流程图: readme: 1.程序配置文件: 黑名单文件blacklist.t ...
- 用户名密码登录小程序及input与raw_input区别。
一.此次程序需要实现: 1.设定固定的用户名密码 2.用户名密码输入正确打印登录正确信息 3.仅仅运行三次登录 二.本次使用的python版本为: Windows下版本号: C:\Users\dais ...
- 学习《Spring 3.x 企业应用开发实战》Day-1
Day-1 记录自己学习spring的笔记 提要:根据<Spring 3.x 企业应用开发实战>开头一个用户登录的例子,按照上面敲的. 1.项目分层
- Python实例---模拟微信网页登录(day1)
第一步:创建Django项目 创建Django项目,添加App 创建静态文件夹static 修改settings.py文件 1. 取消csrf注释 2. 添加静态文件路径 # 添加静态文件路径 STA ...
- day1 python判断输入的密码是否正确
_username = 'leon' _password = 'zyl' username = input("username:") password = input(" ...
- PHAR伪协议&&[CISCN2019 华北赛区 Day1 Web1]Dropbox
PHAR:// PHP文件操作允许使用各种URL协议去访问文件路径:如data://,php://,等等 include('php://filter/read=convert.base64-encod ...
- 浅谈SQL注入风险 - 一个Login拿下Server
前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...
- 打开程序总是会提示“Enter password to unlock your login keyring” ,如何成功关掉?
p { margin-bottom: 0.1in; line-height: 120% } 一.一开始我是按照网友所说的 : rm -f ~/.gnome2/keyrings/login.keyrin ...
随机推荐
- redis 一二事 - 设置过期时间,以文件夹形式展示key显示缓存数据
在使用redis时,有时回存在大量数据的时候,而且分类相同,ID相同 可以使用hset来设置,这样有一个大类和一个小分类和一个value组成 但是hset不能设置过期时间 过期时间只能在set上设置 ...
- DragRigidbody2D
组件源码 using UnityEngine; using System.Collections; //This script allows to drag rigidbody2D elements ...
- centos下pip安装mysql_python
今天在使用pip安装mysql_python时,遇到一些问题,现记录下来. 1.执行pip install mysql-python时,报错 Running setup.py egg_info for ...
- ZGrapher 画函数曲线图的工具
可以下载个绿色版,我下载的是 ZGrapher 1.4 绿色版.下面先看下图出来的图: 然后可以在“file"->"Save as Picture ..." -&g ...
- xcode插件XAlign
一款十分强大的自定义对齐模式插件 开源地址:https://github.com/qfish/XAlign/ 终端输入命令: $ curl http://qfi.sh/XAlign/build/ins ...
- PHP header函数的几大作用
先看看官方文档的定义 (PHP 4, PHP 5, PHP 7) header - 发送原生 HTTP 头 void header ( string $string [, bool $replace ...
- Android 画布绘图
我们已经介绍了Canvas,在那里,已经学习了如何创建自己的View.在第7章中也使用了Canvas来为MapView标注覆盖. 画布(Canvas)是图形编程中一个很普通的概念,通常由三个基本的绘图 ...
- jacob下载问题, Office word 此文件正由另一应用程序或用户使用的解决方法
http://jingyan.baidu.com/article/75ab0bcbd6682fd6864db2db.html
- RTX与SVN使用手册适用于新手
一.RTX使用说明 1.下载 http://rtx.tencent.com/rtx/download/index.shtml rtx下载地址(可以只下载客户端) 2.使用方法 1)点击最下面的服务器设 ...
- [vim]vim 在win下乱码解决
vim在win下遇到汉字乱码早就知晓,本以为通过如下设置即可解决乱码问题 set encoding=utf-8 set fileencoding=utf-8,chinese 这样设置是可以解决源码文件 ...