• 用户认证登录程序



    # -*- coding:utf-8 -*-
    # author: Wu changhao

    #基础需求:
    #让用户输入用户名密码
    #认证成功后显示欢迎信息
    #输错三次后退出程序

    count = 1 #计数器
    number = 3 #剩余次数
    while count <= 3: #循环3次错误后,退出程序。
    username = input("please input your is username :")
    password = input("please input your is password :")
    number -= 1 #剩余次数每次减一次
    if username == "changhao" and password == "null": #判断正确的用户名和密码
    print("登陆成功,欢迎您%s!" % username)
    break #登陆成功后跳出while循环关闭程序
    else:
    if count <= 2: #判断失败允许登陆三次
    print("登陆失败,请重新输入。剩余次数%s" % number)
    elif count == 3: #判断连续失败三次,退出程序。
    print("登陆失败!剩余次数%s" % number)
    break #剩余次数为0时,跳出while循环关闭程序
    else:
    print("登陆失败!")
    break
    count += 1 #计数器每次循环累加一次


    #升级需求:
    #可以支持多个用户登录(提示,通过列表存多个账户信息)
    #用户3次认证失败后,退出程序,再次启动程序尝试登陆时还是锁定状态

    count = 1 #计数器
    number = 3 #剩余次数
    userdisc = {"xiaohong":0, "xiaoming":1, "xiaojun":2} #用字典生成用户账户信息
    file = open('lock_user.txt', 'r') #打开锁文件,设置为只读模式
    lock_file = file.readline() #将文件实例化文本文件
    file.close() #关闭文件

    while count <= 3: #循环3次错误后,退出程序。
    number -= 1 # 剩余次数每次减一次
    username = input("please input your is username :")
    password = input("please input your is password :")
    if username in lock_file: #如果账户名存在锁文件内,则告知用户被锁定。
    print("您好,%s账户已被锁定!" % username)
    break
    elif username in userdisc and password == "null": #如果用户名存在用户字典内并且密码匹配,则成功登陆。
    print("您好%s,登录成功!" % username)
    break
    else:
    if count <= 2: #判断失败小于等于2次,则输出。
    print("登陆失败,请重新输入。剩余次数%s" % number)
    elif count == 3: #判断连续失败三次,则执行。
    file = open('lock_user.txt', 'w') #打开锁定文件,设置为写模式。
    if username in userdisc: #如果用户存在用户字典中,将用户账户写入锁定文件。
    file.write(username)
    file.close()
    print("登陆失败!剩余次数%s" % number)
    else:
    print("登陆失败!剩余次数%s" % number)
    break #剩余次数为0时,跳出while循环关闭程序
    else:
    pass
    count += 1 #计数器每次循环累加一次
  • 相关阅读:
    redis 集群目标、集群查看、配置方法及过程、哨兵配置启动
    redis 事务、Jedis事务处理流程
    redis订阅与发布(把redis作为消息中间件)
    redis 管道技术 pipeline 简介
    redis 适用场景、缓存选择、java实现
    redis 数据淘汰策略与配置
    redis 持久化策略、aof配置、测试、手动持久化、aof文件体积优化
    redis 命令行查看修改配置文件项、配置文件说明
    redis HyperLogLog 基数估算
    redis 命令select、dbsize、清空数据库、info、client
  • 原文地址:https://www.cnblogs.com/changha0/p/8004437.html
Copyright © 2020-2023  润新知