python学习-实现用户密码登录,输错三次锁定
作业需求:
- 输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后锁定
实现思路:
- 判断用户是否在黑名单,若在黑名单,则将用户锁定
- 判断用户是否存在,若不存在,提示用户不存在
- 若用户存在,判断登录密码是否正确,若正确,则欢迎用户成功登录,提供用户三次密码输入机会,若三次输入错误,则将账户锁定
方式一:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
count = 0 #计数器
username = "aaa" #登录用户名
userpassword = "asd" #登录密码 #读取黑名单用户
f = open("aaa.txt","r")
file_list = f.readlines()
f.close()
lock= []
name = input("登录用户名:") #判断用户是否在黑名单
for i in file_list:
line = i.strip("\n")
lock.append(line)
if name in lock:
print("你的账户已锁定,请联系管理员。")
else:
#如果用户没有在黑名单,判断用户是否存在
if name == username:
#如果密码连续输错了三次,锁定账号
while count <3:
password = input("登录密码:")
if name == username and password == userpassword:
print("欢迎%s!"%name)
break
else:
print("账号和密码不匹配")
count +=1
else:
print("对不起,您的账号连续输错三次密码已被锁定,请联系管理员。")
f = open("aaa.txt","w+")
li = ['%s'%username]
f.writelines(li)
f.close()
else:
print("用户名不存在,请输入正确的用户名。")
方式二:
#新建两个文件,account.txt和account_lock.txt,在account中输入aaa 123
#其中account.txt采用只读形式,account_lock.txt则采用读写形式
import sys,os
count = 0
name_list = []
while count < 3:
name = input("请输入用户名:")
lock_file = open("account_lock.txt","r+") #读取黑名单,"r+":打开一个文件用于读写,"r":以只读方式打开文件
lock_list = lock_file.readlines()
#.readlines():一次读取整个文件,并将内容分析成一个行的列表,与.read()一样
#.readline():一次读取一行,当内存不够时使用.readline()
for lock_line in lock_list:
lock_line = lock_line.strip('\n')
if name == lock_line:
#如果输入的用户名位于黑名单,则程序异常退出
sys.exit("用户%s已经被锁定,请联系管理员解锁." %name)
#读取正确的用户名和密码
user_file = open("account.txt","r")
user_list = user_file.readlines()
for user_line in user_list:
(user,password) = user_line.strip('\n').split()
name_list.append(user_line) #.append():用于在列表末尾添加新的对象
print("---------",name_list)
#用户名正确,密码输入计数
if name == user:
i = 0
while i<3:
passwd = input("请输入密码:")
if passwd == password:
print("欢迎%s登录"%name)
sys.exit(0)
else:
if i<2:
print("用户%s密码错误,请重新输入,还有%d机会."%(name,2-i))
i += 1
else:
lock_file.write(name + '\n')
sys.exit("用户%s输错密码三次,用户将被锁定并退出,请联系管理员解锁."%name)
else:
pass
else:
#用户名输入错误计数
if count < 2:
print("用户%s不存在,请重新输入,还有%d次机会"%(name,2-count))
count += 1
else:
sys.exit("用户%s不存在,退出"%name)
#关闭已经打开的文件
lock_file.close()
user_file.close()
python学习-实现用户密码登录,输错三次锁定的更多相关文章
- Python3.5 Day1作业:实现用户密码登录,输错三次锁定。
作业需求: 1.输入用户名密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 实现思路: 1.判断用户是否在黑名单,如果在黑名单提示账号锁定. 2.判断用户是否存在,如果不存在提示账号不存在. 3. ...
- python 循环和file操作实现用户密码输错三次将用户锁定
一.需求编写登录接口1.输入用户名密码2.认证成功后显示欢迎信息3.输错三次后锁定 二.简单思路登录,三次密码输入错误锁定用户1.用户信息文件:存放用户名和密码2.黑名单文件:将输入三次错误的用户加入 ...
- python 循环使用 while 或 for 语句实现用户名密码输错三次退出
如有错误欢迎大家指出,新手初来乍到.程序没那么复杂,是最简单的. 一.需求 编写登录文件 .py1. 输入用户名密码2. 正确,输出欢迎登录3. 当输入用户名和密码小于 3 次,输入用户名或者密码错误 ...
- python作业设计:输入用户名密码,认证成功后显示欢迎信息,输错三次后锁定
作业需求: 1.输入用户名密码 2.认证成功后显示欢迎信息 3.输错三次后锁定实现思路: 1.判断用户是否在黑名单,如果在黑名单提示账号锁定. 2.判断用户是否存在,如果不存在提示账号不存在. 3.判 ...
- python3 登录验证小程序,同一用户输错三次密码,锁定账户
''' 让用户输入用户名密码 认证成功后显示欢迎信息用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态''' # !/usr/bin/env python # -*- coding:u ...
- 关于git 远程仓库密码一直输错的问题
解决方法, git 换地方使用后需要重新配置秘钥,一个钥匙开一个地方的门: 如果还不行, 在控制面板-用户账户-凭据管理-加添凭证,输入正确的账号密码:因为Windows的凭据管理器里面可能保存了你刚 ...
- Python学习---模拟微信网页登录180410
WEB微信 网页登录的猜想: a. 访问页面出现二维码 b. 长轮询监听是否已经扫码并且点击确认 c. 如何进行会话保持 d. 如何获取用户列表 e. 如何发送消息(接收消息) 过程:访问微信官网[h ...
- Python开发之用户密码存储
在各种线上应用中,用户名密码是用户身份认证的关键,它的重要性不言而喻.一方面,作为保护用户敏感数据的钥匙来说,一旦被破解,系统将敞开大门完全不设防.另一方面,密码这把钥匙本身就是非常敏感的数据:大多数 ...
- ORACLE_19c用户密码登录失败的问题以及ORA-28040
测试环境19c 本地登录无异常,创建测试用户,电脑Plsql登录提示报错ORA-28040,处理后再次登录提示密码错误,最后重置密码再次登录OK? 通过这个问题再次测试及反思: 1.ORA-28040 ...
随机推荐
- GPL协议本身就是剥削,oracle维权玩的让人恶心
我们先来看一下MySQL的版权问题.当前,MySQL采用双重授权(Dual Licensed),他们是GPL和MySQL AB制定的商业许可协议.如果你在一个遵循GPL的自由(开源)项目中使用MyS ...
- 关于div可编辑的复制粘贴问题
todoFilter(e) { e.preventDefault(); if (!e.target.getAttribute('contenteditable')) { return; } const ...
- setState详解
我们都知道,React通过this.state来访问state,通过this.setState()方法来更新state.当this.setState()方法被调用的时候,React会重新调用rende ...
- BOOST学习笔记
BOOST学习笔记 1 tool #pragma once #include <vector> #include "boost/noncopyable.hpp" #in ...
- ZC__问题
1. int.long.float 等的类型 如何创建 Class对象? ZC: 不能创建的话,反射里面只能使用 Integer等的包装类 作为参数了? ZC: 查了一下,貌似 要用反射创建对象,就不 ...
- Redis分区探究
Redis比较好的分区算法是采用Hash分区算法 也就是我们可以将所有的server例如:user1,user2,user3.通过hash函数将key转化为一个数字然后求余找到需要存储的server. ...
- 计算从哪天起应该购买预售火车票.cs
代码直接CSC编译即可. 计算从哪天起应该购买预售火车票.cs using System; using System.Diagnostics; using System.IO; class Progr ...
- WebService是什么?以及工作原理
WebService 就是一个应用程序,向外界暴露出公开的API使别人其能在WEB对其进行远程调用,具有跨平台和跨语言的等特点,采用Internet的Http协议进行客户端与服务器之间的交互 由XML ...
- CCF 201703-3 Markdown
问题描述 试题编号: 201703-3 试题名称: Markdown 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 Markdown 是一种很流行的轻量级标记语言(lig ...
- UVALive 4270 Discrete Square Roots
题目描述: 在已知一个离散平方根的情况下,按照从小到大的顺序输出其他所有的离散平方根. 在模n意义下,非负整数x的离散平方根是满足0<=r<n且r2=x(mod n)的整数r. 解题思路: ...