zoukankan      html  css  js  c++  java
  • 编写登陆认证程序

    基础需求:
    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()


  • 相关阅读:
    jQuery轮播图(一)轮播实现并封装
    openSUSE 12.3 默认启动项
    最大堆(最小堆)
    二叉树基本操作续二:前序、中序、后序遍历(非递归 迭代方式)
    二叉树基本操作续一:二叉树建立、节点数统计
    二叉树基本操作:前序、中序、后序遍历(递归方式)
    Android如何打印std::cout/printf(重定向stdout)
    textarea高度跟随文字高度而变化
    箭头函数与普通函数的区别
    浏览器兼容问题
  • 原文地址:https://www.cnblogs.com/bimg1999/p/10556590.html
Copyright © 2011-2022 走看看