编写登陆接口

需求:

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后锁定

 

# Author:wangsen
# 加载getpass模块 密码密文
import getpass

# 计数器
count = 0
# 用户的二维list,方便验证
new_user = []
# 记录登陆的用户list
input_username = []
# 打开user.txt文件并将内容读到user的list下
with open ('user.txt', 'r') as ws:
user = ws.readlines()
# 循环list得到二维list [['username','password']]
# strip()去掉换行的\n 以逗号拆分
for name in user:
new_user.append(name.strip('\n').split(","))
print(new_user)
# 读黑名单
with open('Blacklist.txt', 'r+') as op:
black_list = op.readlines()
# 总循环控制器
while count < 3:
username = input("Please enter your username : ")
# 将输入的username添加到input_username list下
input_username.append(username)
print(username)
print(input_username)
password = input('please enter your password:')
print (password)
# 循环黑名单 如果输入的用户在list中就 程序结束 提示锁定
for black in black_list:
if username in black:
print("{info_username} account has been locked...".format(info_username=username))
count = 3
break
# 循环用户list 0角标的用户名和1角标的密码对应则提示登陆成功
else:
for new in new_user:
if new[0] == username and new[1] == password:
print("Landing success.....")
count = 3
break
else:
print("ERROR Incorrect username or password........")
count += 1
# 如果 input list 中输入的用户等于3 时 就写入黑名单
if input_username.count(username) == 3:
with open('Blacklist.txt', 'r') as op:
op.write("{info_username},".format(info_username=username))
print("{info} has been locked.....".format(info=username))
if count == 3:
print("GAMEOVER!!")
print(black)


知识点1.
注意:pycharm 不支持getpass模块
在Terminal中 运行 (其实际意思就是cmd)
import getpass
password = getpass.getpass('请输入密码:')

知识点2. python with open as用法
python基础 - 文件读写

with open ('user.txt', 'r') as op: 固定语法:python with open as
user = op.readlines() (readline代表只读一行 readlines代表全部都读出来)
从user.txt中读出内容 赋值到中间量op(这个可以我们自己定义)
把op读出来的内容赋值给变量user


大概就是这些 后续会继续补充 加油



posted @ 2016-07-26 20:50  wangsen123  阅读(237)  评论(0编辑  收藏  举报