一、要求

输入用户名密码,验证成功之后显示欢迎信息,输错三次后锁定。

程序:

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
#Author:chenxz #将黑名单放入到列表中
black_user_list=[] #创建空列表
black_user=open('black_user','r',encoding='utf8').readlines() #读取黑名单文件
for i in black_user: #写入空列表
black_user_list.append(i.strip())
print(black_user_list) user_data=open('user_passwd','r',encoding='utf8').readlines() #读取用户名密码文件
user_dict={} #创建一个存放用户和密码的空字典
for i in user_data: #将文件中的用户和密码信息转存到字典中
print(i.strip().split(' '))
user_dict[i.strip().split(' ')[0]]=i.strip().split(' ')[1]
print(user_dict) #防止多次输入不同用户而计算同一count值
while True:
username = input('请输入用户名:') # 输入用户名
count = 0 # 设置初始次数
while True:
password=input("请输入密码:")
#先判断用户是否已经锁定,是的话直接打印已经锁定
if username in black_user_list:
print("the account is locked!")
break
#判断用户是否存在,不存在提示
if username not in user_dict:
print('用户不存在')
break
#若用户存在,判断对应的用户密码是否正确
if password==user_dict[username] :
print('login success,welcome')
else:
print("密码错误")
count+=1
# 错误三次写入黑名单
if count==3:
f=open('black_user','a',encoding='utf8')
f.write('\n%s\n' %username)
f.close()
print( '%s is balckuser now' %username)
break

存放用户信息文件:user_passwd

黑名单文件:black_user

最新文章

  1. 关于MVC的开源商城 Nop之闲聊
  2. Codeforces Round #367 (Div. 2)
  3. map 遍历
  4. Java 开发技巧
  5. Android常见控件— — —Button
  6. linux 查看局域网内ip
  7. Dapper.ColumnMapper 的使用
  8. android.util.Log说明和android 像素说明
  9. Dice (III) 概率dp
  10. springboot整合mq接收消息队列
  11. 【django之Ajax】
  12. J.U.C-三剑客[semaphore\CyclicBarrier\CountDownLatch]
  13. django模板语言之Template
  14. 经典]Linux内核中ioremap映射的透彻理解【转】
  15. mysql 的sleep线程过多处理方法
  16. C#编程(三十一)----------泛型总结
  17. 【WP8】ResourceDictionary
  18. Django框架----数据库表的单表查询
  19. 流媒体协议之RTSP详解20170922
  20. HDU 1263 二维map

热门文章

  1. Java数据结构--单链表
  2. Oracle导出警告“EXP-00003: 未找到段 (0,0) 的存储定义”解决
  3. Linux学习Day3:新手必须掌握的Linux命令(二)
  4. Office Tool Plus - 一个OFFICE 管理、下载、安装器
  5. proptypes介绍
  6. Policy-based Approach(基于策略的方法)
  7. 在本地搭建git服务器
  8. JSP其余内置对象及四大范围对象的使用
  9. 开源版 nignx 不支持 ntml 验证
  10. MongoDB高可用架构集群管理(一)