首先介绍一下该登陆包含什么功能于要求
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函数这是由于如果不做文件关闭,对文件的操作如写可能没有按照自己的预期完成;只是短暂的存入了内存之中,程序关闭之后就会失效