• Python入门-用户登录程序升级版


    编写登陆接口

    基础需求:

    • 让用户输入用户名密码
    • 认证成功后显示欢迎信息
    • 输错三次后退出程序

    升级需求:

    • 可以支持多个用户登录 (提示,通过列表存多个账户信息)
    • 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
     1 users = [['ziv', '666'], ['alex', '213']]
     2 login_state = False
     3 # 设置用户登陆状态为False的标志
     4 count = 0
     5 username_count = []   # 用来计算用户登陆次数
     6 user_name = []
     7 lock_users = []
     8 f = open('lock_file.txt', 'r', encoding='utf-8')
     9 # 读取文件里已被锁定用户的信息
    10 for i in f:
    11     lock_users.append(i.strip())
    12 while count < 3:
    13     username = input('Username:').strip()
    14     password = input('Password:').strip()
    15     username_count.append(username)
    16     # 将用户输入的用户名添加到计数列表
    17     if username in lock_users:
    18         exit('用户已被锁定')
    19     for user_item in users:
    20         if username == user_item[0] and password == user_item[1]:
    21             print('登陆成功')
    22             login_state = True  # 登陆成功,login_state改为True
    23             break        # 跳出for循环
    24     else:
    25         print('用户名或密码错误')
    26         # for 循环正常执行完(登录成功会被break,不会执行else,反之执行),再执行else
    27     if login_state:
    28         break            # 用来跳出while循环
    29     count += 1
    30 else:
    31     print('错误次数过多')  # 登录成功while被break,不会执行else,反之执行
    32     for lock in username_count:
    33         user_name.append(lock)
    34         if user_name.count(lock) >= 3:  # 列表里面出现次数超过3次的用户名
    35             lock_write = open('lock_file.txt', 'a', encoding='utf-8')
    36             lock_write.write(lock+'
    ')
    37             lock_write.close()
    38             print('锁定用户:', lock)  

     注:需要先创建一个lock_file.txt文件,文件可以为空。

  • 相关阅读:
    python开发环境准备
    MacOS X 安装OpenCV3.2
    tensorflow源码分析——BasicLSTMCell
    结对开发求一数组的最大子数组的和
    结对开发读文本中的二维数组求该二维数组最大子数组的和
    随机四则运算的出题程序java
    突现灵感想出较新简单算法实现求一数组最大子数组的和
    四则运算C++版
    Cys_Control(一) 项目搭建
    Cys_Control(二) MButton
  • 原文地址:https://www.cnblogs.com/zivli/p/9064567.html
Copyright © 2020-2023  润新知