Python 3 简易用户登录系统,输错三次密码锁定账…
2018-06-23 13:16:56来源:未知 阅读 ()
使用Python 3 实现简易用户登录系统,输错三次密码锁定账号。
文件结构:
lock.txt
保存被锁定的用户,一行一个
users.txt
保存用户账号密码,按照以下格式
{"jack":"1234","tom":"123","alex":"12345"}
login.py
import getpass # 使用getpass模块,输入密码的时候是密文
import json
username = input("input username:")
with open("users.txt",'r') as f: # 用户表,保存用户名和密码
contents = f.read()
users = json.loads(contents) # convert to dict type
with open("lock.txt",'r') as lock_file: # lock.txt保存被锁定用户,这里读取出来用于判断用户输入的账号是否已经被锁定
lock_users = lock_file.readlines()
lock_user_list=list()
for lock_user in lock_users:
lock_user_list.append(lock_user.strip()) # 转换成列表,并去除每个元素后面的换行符
if username in lock_user_list:
print("your account {username} has been locked, please contact the administrator.".format(username=username)) # 字符串格式化,在lock.txt直接退出
exit()
count = 0 # 计数器,用于统计用户输入密码次数
count_left = 3 # 还剩几次
if username in users: # 外层循环,判断用户是否存在,不存在直接退出,存在则进入密码输入环节
while count < 3: # 计数3次
#password = input("input your password:")
password = getpass.getpass("input your password:") # getpass模块
if password == users[username]:
print("welcome aboard, {username}!".format(username = username))
else:
count_left -= 1
while count_left:
print("invalid password, try again and {count_left} times left!".format(count_left=count_left))
break
count += 1
else:
print("invalid password, try maximum times, your account has been locked.") # 尝试超过最大次数限制,锁定账户,将username存进lock.txt,一行一个
block = open("lock.txt","a")
block.write(username+'\r')
block.close()
else:
print("no such username: {username}, exit.".format(username=username))
exit()
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
