要求:输入用户名、密码进行认证,认证成功则欢迎,若输错三次会锁定最后一次输入的用户

知识点归纳:字典操作(items()方法)、字符串操作(如strip()、split()等)、文件读写(for line in f 变迭代器)、while&else循环、if判断

其他:分清变量类型,不要混淆整数和字符串数据类型

源码:

# -*- coding:utf-8 -*-
# Author: WUJiang # 分别存储用户密码、用户锁定标志
info_pw = {}
info_lock = {}
# 读取txt中记录并对上述变量赋值
with open("user_info.txt", "r") as f:
for line in f:
line = line.strip()
name = line.split(" ")[0]
pw = line.split(" ")[1]
lock_flag = line.split(" ")[2]
info_pw[name] = pw
info_lock[name] = lock_flag # -------------用户登录-------------------
login_num = 0
while login_num < 3:
login_name = input("enter your name:")
login_pw = input("enter your password:")
if login_name in info_pw.keys():
if info_lock[login_name] == "": # 易遗漏""
if info_pw[login_name] == login_pw:
print("welcome %s log in" % login_name)
break
else:
print("wrong password")
else:
print("user has been locked, please contact to admin")
break
else:
print("user does not exist")
login_num += 1
else:
print("input num is out of limit")
print("%s is locked" % login_name)
info_lock[login_name] = "" # 被这里坑惨了!!!易遗漏""!!!
# ----若锁定标志更新,需将更新数据写回txt--------
with open("user_info.txt", "w") as f:
for i, j in info_pw.items():
data = i + " " + j + " " + info_lock[i] + "\n"
f.write(data)

最新文章

  1. [Windows] win7 配置Java开发环境
  2. socket的IO多路复用
  3. Centos minimal安装
  4. PARENT VIEW INVALIDATE
  5. Python开发入门与实战17-新浪云部署
  6. jq 修改input 标签的值
  7. beta-review阶段组员贡献分分配
  8. Redis 在新浪微博中的应用
  9. ios7.0结合storyborad实现页面跳转的总结
  10. 获取SQL段的执行时间
  11. sqlserver 2008 局域网跨服务器T-SQL操作(一)
  12. C#的Task和Java的Future
  13. [读书笔记]python3.5实现socket通讯(UDP)
  14. Lesson 3-2 语句:循环语句
  15. Ajax实现聊天室
  16. CentOS 7 配置nginx并默认强制使用https对http进行跳转
  17. SQL-17 获取当前(to_date=&#39;9999-01-01&#39;)薪水第二多的员工的emp_no以及其对应的薪水salary
  18. 编程实战——电影管理器之利用MediaInfo获取高清视频文件的相关信息
  19. 【python】网络编程-TCP协议套接字
  20. Eclipse中如何调整字体

热门文章

  1. Python知识点: os.popen
  2. C#使用NPOI读取电子表格Excel到DataGridView中
  3. Centos6.5安装JDK8教程(一)
  4. base64 数据加密
  5. 面试题: !=!=未看12 略多 sql语句练习 非常 有用
  6. centos6.x禁用ipv6的方法
  7. 28.【转载】挖洞技巧:APP手势密码绕过思路总结
  8. Library学习日志(……)
  9. win7 系统安装 docker
  10. scrapy-redis源码解读之发送POST请求