• 编写登陆接口


    需求:

    • 输入用户名密码
    • 认证成功后显示欢迎信息
    • 输错三次后锁定
    # 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()去掉换行的 以逗号拆分
    for name in user:
    new_user.append(name.strip(' ').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


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



  • 相关阅读:
    苦尽甘来之国产数据库风云榜2022年03月
    存储demo
    行云日志捕获
    重跑支持,删除历史数据
    SpingMVC:结果跳转方式与数据处理
    从Go编程看IO多路复用Select
    mac brew 安装
    对手价是什么意思
    WPF 自定义 窗体(抄袭Fluent.Ribbon仿VS窗体)
    领域驱动设计(2) 领域事件、DDD分层架构
  • 原文地址:https://www.cnblogs.com/wangsen-123/p/5708895.html
Copyright © 2020-2023  润新知