• 编写登陆认证程序


    基础需求:
    1. 让用户输入用户名密码
    2. 认证成功后显示欢迎信息、程序结束
    3. 输错三次后退出程序
    升级需求: 1. 可以支持多个用户登录 2. 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态

    首先是拓扑图

    还有,要先创建 一个空的文件,我命名为

    account_lock.txt
    来储存黑名单用户
    下面是代码,因为有OS模块还不会使用,所以借鉴了前辈们的两段代码.
    #!./usr/bin/env.python
    #.Date:.2019/3/18

    import os
    count_1 = 3
    count = 3
    _1 = ["abc", "123456"]
    _2 = ["cba","234567"]
    _3 = ["bca","345678"]

    while count > 0:
    count -= 1
    name = input("请输入用户名: ")

    with open('account_lock.txt', 'r') as account_lock: # 打开account_lock文件,并赋予可读写权限
    lock_list = account_lock.readlines() # readlines()逐行读取全部内容
    for lock_name in lock_list: # 遍历lock_list,如果用户名在,则执行if
    lock_name = lock_name.strip('\n') # 去除每行内容的换行符
    if lock_name == name:#检查是否存在
    print("用户已经锁定,无法登录!")
    exit()

    if name == _1[0] or name == _2[0] or name == _3[0]:#对比用户名是否存在
    password = input("请同志输入密码:")
    name_pass = [name, password,]#把输入的用户名和密码写入一个变量里面
    if name_pass == _1 or name_pass == _2 or name_pass == _3 :#将变量与列表里面的对比
    print("欢迎",name,"同志登陆")
    exit()
    else:
    break#结束循环,执行下一个循环
    else:
    print("用户名错误,还可以输入",count,"次")
    sel = int(input("重新输入1,退出输入2;"))
    if sel == 1:
    continue
    elif sel == 2:
    break

    while count_1 > 1 and name_pass != _1 and name_pass != _2 and name_pass != _3 :#判断密码正确与是否超过三次
    count_1 -= 1
    print( name, "同志,你的密码不正确,还有",count_1,"次,超过",count_1,"你的将被禁止登陆!!!" )
    password = input("请输入新的密码:")
    name_pass = [name, password, ]
    if name_pass == _1 or name_pass == _2 or name_pass == _3:
    print("欢迎",name,"同志登陆")
    exit(1)
    else:
    pass

    if count_1 == 1: # #这个循环检查密码是否超过三次,超过就执行if,把用户名加入锁定用户列表并退出
    f = open('account_lock.txt', 'a')
    f.write(name)
    f.close()
    print("您的账号已锁定!")
    exit()


  • 相关阅读:
    Windows Phone 7 Ti“.NET研究”ps (1) 狼人:
    Eclipse开发Android应用程序入“.NET研究”门:重装上阵 狼人:
    Android UI基本测验“.NET研究”:线性布局 狼人:
    “.NET研究”Eclipse开发Android应用程序入门 狼人:
    Window“.NET研究”s Phone 7 Tips (2) 狼人:
    文件位置修改strurs2中struts.xml文件的位置
    方法类struts2环境搭建
    平台程序微信平台开发应用的签名
    节点数据TYVJ P1742 [NOI2005]维护序列
    版本编译器Unsupported major.minor version 51.0
  • 原文地址:https://www.cnblogs.com/bimg1999/p/10556590.html
Copyright © 2020-2023  润新知