时间:2016/4/22
姓名:天马流行拳
描述:这是本小白的第二篇博客,下面代码是通过视频学习后自己编写的。写的有点烂但是实现了基本的用户登录功能,还希望大神们多指点给出更简单的方法。
!!!问题:下面脚本有个bug,就是两次while循环在同一个级别,如果直接用户输错但是提示输入密码的时候我输入对了也是可以允许我登录。
请帮忙如何解决这个问题。
#!/usr/bin/env python
#-*- coding:UTF-8 -*-
fil = open('/home/liupeng/PycharmProjects/untitled/day5.txt','r+') # python2.7中 open跟file都可以用来指定打开某个文件,但是在3.0以后的版本中file被取消了用open来打开某个文件
li = [] #做一个空列表目的在于接收下列对文件本身处理后的结果(最后是以处理过后的列表方式来进行接收)
obj = fil.readlines()
for ele in obj:
line = ele.strip() #去除空格以及\n换行符
new_line = line.split(';') #通过split(‘;’)来指定以;来分隔字符串,最后通过列表的方式来传给变量
li.extend(new_line) #用extend来把处理后的new_line后的结果传到li这个空列表中去。
count = 0
import getpass #导入一个getpass模块。这个模块在下面的password设定中起到作用,输入password的时候不显示输入的字符串信息。
while True:
if count < 3:
user= input('请输入登录帐号:')
if user in li:
print('登录成功')
break
else:
print('登录失败,请确认用户信息后重新登录:')
count +=1
continue
else:
print('登录次数过多,用户被锁定')
break
while True:
if count < 5:
passwd = getpass.getpass('请输入用户名密码:')
if passwd in li:
print ('欢迎登录windows 2016 server!!!')
break
else:
print('输入的用户名密码不正确,请重新核对用户密码后再次登录:')
count +=1
continue
else:
print('输入次数过多,用户已被锁定,请联系管理员。或等待30分钟后重新尝试登录!')
break