美文网首页
登陆入口

登陆入口

作者: 真水无香zj01 | 来源:发表于2018-01-17 14:57 被阅读0次

一、要求:

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后锁定

二、程序流程图

image.png

三、代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: Jeff Zhu
import getpass

usr_info = [
    ["Zhang San","asdf123","Logout"], #每个元素是一个列表,有3个子元素,分别是用户名,密码,状态
    ["Li Si","dsaff1","Logout"],      #状态有三种 Login,Logout,Locked
    ["Wang Wu","123456","Logout"],
    ["Zhao Er Ma Zi","888888","Logout"],
]

wrong_times = 0

while True:
    usr_name_input = input("请输入用户名>>>")

    for i in range(len(usr_info)):
        if usr_info[i][0] == usr_name_input:
            usr_index = i
            break
        else:
            usr_index = -1
    
    if usr_index != -1:     #用户存在
        if usr_info[usr_index][2] != "Locked": #判断用户是否被锁定
            while wrong_times < 3:
                #usr_pwd_input = input("请输入密码>>>")
                usr_pwd_input = getpass.getpass("请输入密码>>>") #提示用户输入密码
                if usr_pwd_input == usr_info[usr_index][1]:#密码正确
                    print("%s,Wellcome!"%usr_info[usr_index][0])
                    usr_info[usr_index][2] = "Login"#状态变更为Login
                    wrong_times = 0
                    break
                else:#密码错误
                    print("密码错,请重新输入")
                    wrong_times += 1
            else:
                print("连续输错3次,账户被锁定")
                usr_info[usr_index][2] = "Locked"
                wrong_times = 0
            if usr_info[usr_index][2] == "Login":
                break
        else:
            print("该账户已被锁定")#提示用户已被锁定
    else:
        print("用户不存在")#提示用户名不存在

四、小结

1、建立一个list把所有用户的用户名,密码和状态存进去,在流程分支控制时,可以作为标志位来使用。

2、getpass在pycharm中无法使用,需要到命令行中才能起作用,之前还以为是程序问题,总是死在获取密码那里,后来发现是pycharm的问题。

3、用户名查表那里,我使用了一个索引变量来指向查找的字符串,在C语言中经常使用此类技巧,不知Python中还有没有更好的方法。

相关文章

  • 登陆入口

    一、要求: 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 二、程序流程图 三、代码 四、小结 1、建立一...

  • 宝塔面板登陆入口

    当前宝塔新安装的已经开启了安全入口登录,新装机器都会随机一个8位字符的安全入口名称,亦可以在面板设置处修改,如您没...

  • 我的南极探险之旅 十

    文/魏千洛 巡游结束,登陆Portalpoint波特尔角。 Portalpoint波特尔角位于夏洛特湾的入口。 早...

  • 游戏服务器架构之大厅

    大厅就是一个房间的入口。对于游戏服务器来说就是一个用户进入游戏的入口。他的主要功能一般有 登陆,注册, 网关选择,...

  • 无题

    真是垃圾,在苹果电脑无法登陆,接收不验证码,又没有扫码登陆入口!到底是苹果电脑的问题还是简书的问题,又或者是我人品...

  • MobPush推送证书制作

    登陆苹果开发者网站进入开发者账户。 从开发者账户页面左侧入口进入“Certificates, IDs & Prof...

  • 40/666 HJDS | 微信小程序开发工具安装和使用

    微信小程序开发工具下载安装 https://mp.weixin.qq.com/ 登陆 普通小程序开发者工具 入口...

  • 【学习一个】-注册登陆的设计

    注册登陆的设计 注册登录是互联网产品功能模块中重要的一环,这个模块往往被设置为入口...

  • 防止锚点重置的中转页(vue)

    场景:最近公司的应用加上了网关测试访问入口,以及用户打开应用后长时间不操作,登陆态失效问题。造成结果: #号后面...

  • 【通知】2018年西部计划报名指南

    1.寻找报名入口。 登陆西部计划官网(http://xibu.youth.cn/),在图一所示的右下角找到“西部计...

网友评论

      本文标题:登陆入口

      本文链接:https://www.haomeiwen.com/subject/pxuyoxtx.html