python练习一 编写登陆接口,从本地文本中读取用户名密码

python练习一

  • 编写一个登陆接口
  • 可以输入用户名密码
  • 从本地文件中读取用户名密码
  • 认证通过后提示欢迎登陆信息
  • 输错三次后提示用户被锁,并将被锁用户名写入被锁用户文本中
# Author:Roach
import sys
name_list = open('user_pass','r+')	# 打开本地user_pass用户名密码文本,格式为  用户名:密码
name_text = dict(line.strip().split(":") for line in name_list if line)	# 将读取到的用户名密码做成字典,.strip()去掉每行未/n回车符,.split(":")将用户名密码通过:分隔开,{'test': 'test'}通过name_text.get{username}可直接获取用户名的密码
print(name_text)

for i in range(3): # 循环三次,i从0开始循环
    username = input("username:")	# 输入用户名
    password = input("password:")	# 输入密码
    lock_name = open('locked', 'r+')	# 打开锁定用户文件判断用户是否被锁
    for j in lock_name.readlines():
        if username == j.strip():	# 判断用户是否被锁,去掉行末/n回车符
            print("因尝试过多导致{}用户锁定".format(username))	# 输出用户锁定消息
            exit(1)
    if password == name_text.get(username):	# 判断输入密码是否与文本中用户名密码相同
        print("Welcome user {name} login...".format(name=username))	# 输出欢迎登陆信息
        break
    elif i == 2:	# 当i=2时以输入三次,将用户名写入被锁用户文本中,并提示用户锁定
        lock_name = open('locked','a+')	# 打开locked被锁用户文本
        lock_name.write(username+'\n')	# 写入输入的用户名到文本中,并写入/n回车符
        lock_name.close()	# 关闭打开的用户文本
        print("因尝试过多导致{}用户锁定".format(username))	# 输出用户锁定消息
        exit(2)
    else:
        print('''Invalid username or password!
---------剩余尝试次数:{}---------'''.format(2-i))	# 提示用户还有几次输入机会

执行结果显示

username:test
password:asdf
Invalid username or password!
---------剩余尝试次数:2---------
username:test
password:asdf
Invalid username or password!
---------剩余尝试次数:1---------
username:test
password:test
Welcome user test login...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值