需求:

  • 让用户输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后退出程序
  • 可以支持多个用户登录
  • 用户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. 一行命令将ubuntu升级到最新版本

    zzupdate 是一个开源的命令行程序,通过将几个更新命令组合到一个命令中,使得将 Ubuntu 桌面和服务器版本升级到更新版本的任务变得容易一些. 将 Ubuntu 系统升级到更新的版本并不是一项 ...

  2. TPU的相关资料

    1.谷歌 TPU 的强大与局限:TPU/GPU/CPU性能功耗全面对比:http://www.sohu.com/a/134315786_473283 2.谷歌发布TPU论文,75位联合作者,GPU迎来 ...

  3. Netty(1-2)Discard Client

    一.DiscardClientHandler import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelFuture; import ...

  4. MCS-51单片机的定时器/计数器概念

    一.MCS-51单片机的定时器/计数器概念 单片机中,脉冲计数与时间之间的关系十分密切,每输入一个脉冲,计数器的值就会自动累加1,而花费的时间恰好是1微秒;只要相邻两个计数脉冲之间的时间间隔相等,则计 ...

  5. kindeditor 修改上传图片的路径的方法

    默认情况下kindeditor上传的图片在编辑器的根目录/attached/目录下.以日期建一个目录,然后保存文件.有些时候大概我们并不想这样.考虑到更新编辑器,或更换编辑器不太方便.比如我现在想把上 ...

  6. 死磕 java原子类之终结篇(面试题)

    概览 原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何线程上下文切换. 原子操作可以是一个步骤,也可以是多个操作步骤,但是其顺序不可以被打乱,也不可以被切割 ...

  7. SPEC CPU 使用简介

    SPEC CPU2000简介 SPEC CPU2000是由标准性能评价机构“The Standard Performance Evaluation Corporation (SPEC)”开发的用于评测 ...

  8. AES加密示例

    最近用到对文本内容进行加密,于是查了一下常用的加密算法: DES(Data Encryption Standard):对称算法,数据加密标准,速度较快,适用于加密大量数据的场合:3DES(Triple ...

  9. 深度探索C++对象模型——关于对象

    引言 以前读<C++ Primer>的时候一直有一种感觉:该书虽然是C++入门书籍,初学者读之却觉晦涩,越往后读越是如此.等到稍加理解后再读该书,顿感醍醐灌顶,茅塞顿开.究其原因,在于原作 ...

  10. winform 配置文件增删改查

    winform 配置文件是  App.config webform   的配置文件 是web.config 其实基本操作都一样    设置个配置文件  全局文件 访问者个配置文件  对这个配置文件增删 ...