需求:

  • 让用户输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后退出程序
  • 可以支持多个用户登录
  • 用户3次认证失败后,退出程序,再次启动程序尝试登陆时,还是锁定状态

下面是我写的代码,如果有BUG或者不足之处,还请指出。

"""
需要先在本地创建一个名为locked_user.txt的文件,才能执行下面的代码。
"""
import os current_path = os.getcwd() # 获取当面目录
db_username = ['alex', 'wusir', 'oldboy', 'edward'] # 用户名数据库,用户名不能是一样的
db_password = [123, 321, 456, 123123, 123] # 密码可以是一样的 locked_file = open(current_path + '/locked_user.txt') # 打开文件
locked_info = locked_file.readlines() # 获取被锁定用户的信息。readlines一次读取所有文件,并返回list.因为我们不止锁定一个用户,所以用这个方法
locked_file.close() count = 3
while count > 0:
count -= 1
username = input('username:').lower()
if (username + '\n') in locked_info: # 判断用户是否被锁定,加\n是因为下面用了追加模式,每追加一个用户名就重起一行
print('用户名已被锁定')
break
password = int(input('password:'))
if username in db_username and password in db_password: # 用户名和密码都在数据库里才能验证通过
print('welcome')
break
else:
if username in db_username:
if count == 0:
locked_file = open(current_path + '/locked_user.txt', 'a') # 在locked_user.txt里用追加模式储存这个用户名,每追加一个重起一行
locked_file.write(username + '\n')
locked_file.close()
print('登录三次失败,用户名被锁定')
else:
print('用户名或错误,你还有{}次机会'.format(count))
else:
if count == 0:
print('用户名不存在,登陆失败')
else:
print('用户名不存在,你还有{}次机会'.format(count)) """
这个登陆系统有两个缺陷:
1.需要先创建一个名为locked_user.txt的文件才行,否则会报错,目前还不会用代码让python去自动创建名为locked_user.txt的文件
2.其实只有在第三次输入用户名、并且用户名在数据库的时候才会被锁定。不知道一般的网站登录系统是不是这样,是不是系统会判断3次输入一样的用户名才会给锁定。
"""

用python编写简易登录接口的更多相关文章

  1. 如何使用 Python 编写后端 API 接口

    如何使用 Python 编写后端 API 接口 get API Python3 # coding:utf-8 import json # ModuleNotFoundError: No module ...

  2. Python编写简易木马程序(转载乌云)

    Python编写简易木马程序 light · 2015/01/26 10:07 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能 ...

  3. python练习--1、简易登录接口

    function:用于实现简单的用户登录接口. description:用户信息存储于字典中,增加用户需手动写入代码中.最多可以尝试登录9次,首次使用会先在程序目录下创建锁文件.若在用户栏输入quit ...

  4. 【转载】Python编写简易木马程序

    转载来自: http://drops.wooyun.org/papers/4751?utm_source=tuicool 使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马. 首先准备好 ...

  5. python初步编写用户登录

     python初步编写用户登录 python编写用户登录 用python写一个脚本,使得这个脚本在执行后,可以产生如下的效果: 1.用户的账号为:root 密码为:westos 2.用户账号和密码均输 ...

  6. 关于python怎样编写登录接口

    把今天的成果展示下,关于怎么用python编写登录接口, 要求是   1.输入用户名和密码 2.输错三次密码就锁定用户 3.认证成功后输出欢迎信息 账号文件内容如下: sanjiang sanjian ...

  7. python基础一之课后作业:编写登录接口

    1 # Author : Mamba 2 3 #python基础一之课后作业:编写登录接口 4 5 # 输入用户名密码 6 # 认证成功后显示欢迎信息 7 # 用户名3次输入错误后,退出程序 8 # ...

  8. (转)python编写登录接口

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://506554897.blog.51cto.com/2823970/1907262 ...

  9. 190327 Python登录接口

    #!Author:John # _*_ coding: utf-8 _*_ #编写登录接口 #输入用户名密码 #认证成功后显示欢迎信息 #输错三次后锁定 import sys, os, getpass ...

随机推荐

  1. Python中输出字体的颜色设置

    1.实现过程 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关.控制字符颜色的转义序列是以ESC开头,即用\033来完成 2.书写过程 开头部分: \033[显示方式;前 ...

  2. 常见的HTTP状态码说明

    1.说明 HTTP服务器状态代码定义(Status Code Definitions) 做测试的时候,会产生比较多的HTTP错误,查看其错误,有超时的,链接不到图片的,连接不到服务器等等,很多人经常忘 ...

  3. Net Core2.0下使用Dapper

    Net Core2.0下使用Dapper 今天成功把.Net Framework下使用Dapper进行封装的ORM成功迁移到.Net Core 2.0上,在迁移的过程中也遇到一些很有意思的问题,值得和 ...

  4. Cube配置http通过SSRS连接

    IIS的配置:http://www.cnblogs.com/ycdx2001/p/4254994.html 连接字符串: Data Source=http://IP74/olap/msmdpump.d ...

  5. 微信支付(java版本)_支付结果通知

    应用场景: 支付完成后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答. 对后台通知交互时,如果微信收到商户的应答不是成功或超时,微信认为通知失败,微信会通过一定的策略定期重新 ...

  6. Ubuntu 12.04源

    deb http://ubuntu.uestc.edu.cn/ubuntu/ precise main restricted universe multiverse deb http://ubuntu ...

  7. ios 身份证照片识别信息

    一个近乎完整的可识别中国身份证信息的Demo就问问你霸气不

  8. Centos 7 搭建git服务器及使用gitolite控制权限

    一.安装git yum install git git --version #查看git版本 二.升级git(可选,如果之前已经安装git,需要升级git到最新版本) git clone https: ...

  9. Linux 系统挂载阿里云数据盘

    适用系统:Linux(Redhat , CentOS,Debian,Ubuntu) *  Linux的云服务器数据盘未做分区和格式化,可以根据以下步骤进行分区以及格式化操作. 下面的操作将会把数据盘划 ...

  10. 单链表常见面试题(C语言实现)

    总结常见的单链表操作函数,复习使用,仅供参考,代码调试通过. #include<stdio.h> typedef struct node{ int data; struct node *n ...