题目要求:

输入用户名密码
认证成功后显示欢迎信息
输错三次后锁定
 
#要求使用文件存储用户名和密码,每次从文件读入用户名和密码用来验证,如果输错三次密码该账户会被锁定,并讲锁定的用户名写入文件
#账号密码正确输出欢迎信息
 
涉及知识点:
文件读写操作
循环流程
程序判断流程
经过分析构思
我写的第一版代码如下:
#Author jack
# _*_ coding: utf-8 _*_
#date 2019-08-14
'''
作业一:编写登录接口
输入用户名密码
认证成功后显示欢迎信息
输错三次后锁定
'''
#判断用户账号密码
def check_pass(username, password):
with open('userfile.txt', 'r+') as f:
content = f.readlines()
for i in content:
if i.split(',')[0] == username and i.split(',')[1].strip('\n') == password:
return True
break
else:
return False #判断用户名是否锁定:
def isLock(username):
with open('locklist.txt', 'r') as f:
cont = f.read()
if username in cont:
return False
else:
return True #写锁定用户名到locklist,如果用户输错三次,就调用此函数,讲锁定的用户名写入此文件
def writeErrlist(username):
with open('locklist.txt', 'a+') as f:
f.write(username)
f.write('\n') def main():
count = 0 #存储输密码次数
while count < 3:
username = input('Please input your username: ')
is_lock = isLock(username)
if is_lock:
passwd = input('Please input your password: ')
result = check_pass(username, passwd)
if result:
print('welcome back! "{}"'.format(username))
break
else:
count += 1
if count < 3:
print('Invalid username or password, Please try again!')
else:
print('Too many attempts, Your account has benn locked.')
writeErrlist(username)
else:
print('Your account has been locked!!!') if __name__ == "__main__":
main()

  

Python之简单的用户名密码验证的更多相关文章

  1. 【WCF】使用“用户名/密码”验证的合理方法

    我不敢说俺的方法是最佳方案,反正这世界上很多东西都是变动的,正像老子所说的——“反(返)者,道之动”.以往看到有些文章中说,为每个客户端安装证书嫌麻烦,就直接采用把用户名和密码塞在SOAP头中发送,然 ...

  2. WebService 用户名密码验证

    原文:WebService 用户名密码验证 在项目开发的过程中,WebService是经常要用的,当调用WebService方法时,需要经过服务的验证才可以调用,一般就是用户名/密码验证,还有一个就是 ...

  3. 自定义实现wcf的用户名密码验证

    目前wcf分为[传输层安全][消息层安全]两种,本身也自带的用户名密码验证的功能,但是ms为了防止用户名密码明文在网络上传输,所以,强制要求一旦使用[用户名密码]校验功能,则必须使用证书,按照常理讲, ...

  4. WCF 安全性之 自定义用户名密码验证

    案例下载 http://download.csdn.net/detail/woxpp/4113172 客户端调用代码 通过代理类 代理生成 参见 http://www.cnblogs.com/woxp ...

  5. OpenVPN使用用户名/密码验证方式

    OpenVPN推荐使用证书进行认证,安全性很高,但是配置起来很麻烦.还好它也能像pptp等vpn一样使用用户名/密码进行认证. 不管何种认证方式,服务端的ca.crt, server.crt, ser ...

  6. 【WCF】Silverlight+wcf+自定义用户名密码验证

    本文摘自 http://www.cnblogs.com/virusswb/archive/2010/01/26/1656543.html 在昨天的博文Silverlight3+wcf+在不使用证书的情 ...

  7. vb6-很简单的配置密码验证提示

    '很简单的配置密码验证提示 Dim add As String add = Trim(InputBox("请输入配置密码", "报表配置")) If add = ...

  8. WCF服务安全控制之netTcpBinding的用户名密码验证【转】

    选择netTcpBinding WCF的绑定方式比较多,常用的大体有四种: wsHttpBinding basicHttpBinding netTcpBinding wsDualHttpBinding ...

  9. WCF用户名密码验证方式

    WCF使用用户名密码验证 服务契约 namespace WCFUserNameConstract { [ServiceContract] public interface IWcfContract { ...

随机推荐

  1. 在CentOS中安装与配置Server JRE 8

    感谢大佬:https://my.oschina.net/zx0211/blog/508221?p=1 其实也很简单: 1.从http://www.oracle.com/technetwork/java ...

  2. 用Java开发局域网内文件传输软件遇到的一些问题

    项目地址:https://github.com/b84955189/FileTransfer 由于巨懒的我不太喜欢使用U盘操作文件,特此开发一个简易的文件传输程序. 目前仅限局域网内传输,后期会尝试写 ...

  3. Java.lang.Integer类中toString(int i, int radix)的具体实现

    Java.lang.Integer.toString(int i,int radix)方法可以实现将一个int类型的10进制的数据转换为指定进制的数据. api文档中介绍: 返回第二个参数指定的基数中 ...

  4. Apache Http Server与Tomcat6 的负载均衡(二)

    一般来说,实现Apache与Tomcat6的负载均衡有两种方式,一种是使用mod_jk,另一种是使用mod_proxy模块.本文只讨论mod_jk方式. 无论使用哪种方式,一般都要经过以下这几个步骤( ...

  5. 详解xpath定位

    xpath定位 1.通过开发者工具直接copy 右击copy-copy xpath 2.串联的方式定位元素 from selenium import webdriverfrom time import ...

  6. MLlib学习——降维

    降维(Dimensionality Reduction) 是机器学习中的一种重要的特征处理手段,它可以减少计算过程中考虑到的随机变量(即特征)的个数,其被广泛应用于各种机器学习问题中,用于消除噪声.对 ...

  7. Spring Cloud Alibaba Nacos路由策略之保护阈值!

    在 Nacos 的路由策略中有 3 个比较重要的内容:权重.保护阈值和就近访问.因为这 3 个内容都是彼此独立的,所以今天我们就单独拎出"保护阈值"来详细聊聊. 保护阈值 保护阈值 ...

  8. 《手把手教你》系列技巧篇(六十六)-java+ selenium自动化测试 - 读写excel文件 - 上篇(详细教程)

    1.简介 在自动化测试,有些我们的测试数据是放到excel文件中,尤其是在做数据驱动测试的时候,所以需要懂得如何操作获取excel内的内容.由于java不像python那样有直接操作Excle文件的类 ...

  9. pytest(7)-yield与终结函数

    通过上一篇文章,我们已经知道了pytest中,可以使用Fixture来完成运行测试用例之前的一些操作如连接数据库,以及测试执行之后自动去做一些善后工作如清空脏数据.关闭数据库连接等. 我们已经学会了f ...

  10. 敲出的第一个python程序

    学习python第二天,终于照猫画虎编辑出第一个程序.程序要求如下: 1.输入用户名.密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 源代码如下: username = 'jackson'pas ...