首先介绍一下该登陆包含什么功能于要求
1:无数据库
2:通过文件的读取完成用户验证
3:三次登陆之后锁定用户所以需要一个黑名单文件
4:为了实现用户验证需要一个用户信息文件(只是简单的功能只存放了密码)
代码如下:
# coding:utf8
__author__ = 'bluesli'
count = 0
for count in range(3):
'''
输入用户名密码
'''
name = input("请输入用户名称")
password = input("请输入密码")
# password = int(password)
print(type(password))
#判断是否在黑名单中,打开文件以读写的方式
black_menu = open('black_menu.log', 'w+')
for line in black_menu.readline():
if line ==name:
print("该用户已被冻结,请重新输入")
break
#验证用户密码是否正确:
user_info = open('user_info.log','r')
# upass = int(user_info.read())
upass = user_info.read()
print(type(upass))
# print(type(str(user_info.read())))
if upass == password: #此处注意文档里面的换行符号或者空格等一些可能导致比较不成功
print("登陆成功")
break
else:
count += 1
if count ==3:
print("用户已被冻结,请联系管理员解冻")
black_menu.write(name)
break
print("用户名或者密码错误,请重新输入,你还有%d次机会,然后锁定用户"%(3-count-1))
continue
black_menu.close()
user_info.close()
总结:
1:在读取文件时可能会遇到读取的字符于自己的预期不同,这是由于文件的换行或者空格导致的
2:文件的读取权限有r (读) w(写) a(追加) w+ (读写)
3:在文件打开之后一定要关闭也就是调用close函数这是由于如果不做文件关闭,对文件的操作如写可能没有按照自己的预期完成;只是短暂的存入了内存之中,程序关闭之后就会失效