算是第一篇博客吧~哈哈哈

虽然说是为了完成作业,不过以后估计会常来分享。首先说一下下边这个程序的基本功能。毕竟是第一次写python程序还是有点小激动和满满的成就感的,下边这个程序:

1.输入不存在的用户,直接退出程序

2.尝试密码三次不对,退出and加入黑名单

3.下次在输入已经加入黑名单的用户名直接退出。

具体的内容就是上边这个了。大神们估计会觉得简单。而我写了整整一天心塞塞。不过总归写出来了。下边上代码。

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
#2016-12-08 frist homework
import getpass #导入密文密码模块
user = {"jingjing":"jingjing314","list":"list314","tvm":"tvmining"} #定义可登录的用户和对应的密码
f = open("user.txt") #打开一个文件
line = f.readline() #调用文件的readline()方法
count = 0 #定义初始count值
while count < 3:
name = input("please enter you username:")
passwd = getpass.getpass("please enter you passwold:")
user.get(name,-1) #判断用户输入的name是否在user这个dict中。后边的-1,为自己定义的当这个name变量不存在的时候,返回类型值
if (user.get(name,-1)) == -1: #做判断如果等于说明这个用户不在用户组里面
print("error username") #直接退出程序
break
while line: #这个就是相当于是写死循环的感觉,当这个有值的时候。就是成立的
if name in line: #如果这个用户输入的名字在白名单里
print("{_name} is error".format(_name=name))
count +=3 #count值+3的目的是为了不让继续输入了,相当于是默认你是攻击者
line = f.readline() #在读这个文件
f.close()
if count <3: #同理再看这里,如果上边不满足while和上边的if会执行这里。
list = user[name] #list相当于是user的value,也就是密码。
if passwd == list: #
print("Wellcome here")
break
else:
print("passwd is error,Please re-enter")
count +=1
if count == 3: #循环三次相当于在count=3的时候
f = open("user.txt","a+") #打开这个文件a+相当于追加。w是覆盖
f.writelines(name) #把用户输入的name放到这个文件里
f.writelines("\n") #为了让每次都自动换行,在追加一个换行符
f.close() #为了确保每次文件都自动关闭
else:
break #这里来了。这里为什么有break,是在第二层while中如果用户名在白名单里,要退出的。这里就是为了退出第二曾循环,而第一层循环由于count大于3自动退出

2016-12-08

最新文章

  1. 关于freemaker的一点使用技巧
  2. b/s结构的物业管理系统(一)-------登录篇
  3. [渣译文] SignalR 2.0 系列:SignalR的服务器广播
  4. Match:Period(POJ 1961)
  5. LINUX的两种后门总结(suid shell与inetd)
  6. 把电脑装成ubuntu系统了
  7. LeetCode Reverse Linked List (反置链表)
  8. SQLite 入门教程(四)增删改查,有讲究
  9. hive第二篇----hive中partition如何使用
  10. [Linux] PHP程序员玩转Linux系列-升级PHP到PHP7
  11. CSS3新增伪类汇总
  12. Jmeter中java.net.URISyntaxException错误
  13. 树莓派虚拟环境手动安装HA
  14. 20165223《Java程序设计》第九周Java学习总结
  15. DataCommand和DataAdapter
  16. ubuntu14.04 安装Kdevelop 进行ROS开发
  17. 【Linux】【JDK】常用命令使用集和裸机配置JDK步骤。
  18. android中checkbox自定义样式
  19. CSS-下拉导航条
  20. excel 妙用选择性粘贴

热门文章

  1. POJ 1830.开关问题(高斯消元)
  2. 《chkconfig命令》-linux命令五分钟系列之四
  3. linux 监控系统缓存和cpu
  4. prototype/constructor/__proto__之prototype简单应用
  5. An erroroccurred while filtering resources
  6. 颤抖吧,Css3
  7. sphinx ---rotate 运行机制
  8. lsmod
  9. Markdown 测试
  10. IFrame中Session丢失的解决办法