Python3练习-输入用户名输入三次错误即锁定该用户,提示登录失败
来源:互联网 发布:安卓模拟器网络问题 编辑:程序博客网 时间:2024/04/27 16:14
介绍一下会用到的一些内容
Python3打开、读取和关闭文件的方法
1 file = open('D:\passwd.txt','r') #打开文件2 content = file.readlines() #读入全部文件内容,并存储到变量推荐使用字典3 file.close() #关闭打开的文件4 print (content) #打印变量内容
#打开文件后一定要记得关闭文件,因为在量少的时候对程序的影响不大,但是在程序长时间运行和文件量很大的情况下会严重影响性能。确保所有数据都写至磁盘。这称为刷新输出(flushing),这点非常重要。
往文件中写入内容的方法:
注意:使用访问模式w时,Python会打开指定的文件来完成写。如果这个文件已经存在,则会清空他现有的内容,也就是完全清除,要追加一个文件,需要使用访问模式a。要打开一个文件来完成读和写(不清除原有内容),需要使用w+。如果想打开一个文件完成写,但是这个文件并不存在,那么首先会为你创建这个文件,然后在打开文件进行行写。
r:以只读方式打开文件,文件不存在则报错
r+:以读写方式打开文件,文件不存在则报错会覆盖文件内容
a:以追加的方式打开文件,不会覆盖原有内容。(附加写入功能)
a+:以追加的方式打开文件,不会覆盖原有内容(附加读写功能,但是我在操作过程没看出有读的效果,我在去实验下)
w:文件不存在则新建,存在则将原有内容清空(附加只写功能)
w+:文件不存在则新建,存在则将原有内容清空(附加读写功能)
w+与r+的区别
r+:可读可写,若文件不存在则报错,会覆盖原有内容
w+:可读可写,若文件不存在则创建,会覆盖原有内容
r+与a+区别
r+:可读可写,会覆盖原有内容,但不是覆盖全部内容
a+:追加内容,不会覆盖原有内容
总结:
如果文件不存在会报错的有r和r+
打开文件只可写不可读的有a和w
会覆盖现有文件的有r、w和w+
可读可写的有r+、w+、a+
方法一:
1 file1 = open('D:\socket.txt','w') #以写入的模式打开文件2 print ("Norwegian Blues stun easily",file = file1) #默认换行,把写入的内容打印到file1(这是一个变量)中3 file1.close() #关闭文件
li = ["1","2","3"] fiel = open('D:\socket.txt','a+')print (li,file = fiel)
方法二:
1 file1 = open('D:\socket.txt','a+') #以追加的模式打开文件2 file1.write("bbbbbb\n") #写入内容并换行3 file1.close() #关闭文件
方法三:
1 file1 = open('D:\socket.txt','a+') #以追加的模式打开文件2 file1.writelines("bbbbbb\n") #写入内容并换行3 file1.close() #关闭文件
解析write和writelines的区别:
write写入的是一个字符串内容,不能写入多个比如字典和列表用write写入就会报错
writelines的参数是序列,比如列表,它会迭代写入文件
方法三:
fiel = open('D:\socket.txt','a+') #以追加的模式打开文件fiel.write("1212") #写入内容fiel.close() #关闭文件
字典的使用
d = {} #创建字典print (d) #打印字典d["root"] = '/bin/bash' #给字典添加内容d["httpd"] = '/sbin/nologin'print (d) #打印字典全部内容print (d["root"]) #打印字典key对应的内容name = "root"if name in d.keys(): #判断是否在字典中 print (name+"在字典中")d["nfs"] = "/sbin/nologin" #字典内容的添加方法print (d)del d["nfs"] #字典内容的删除方法print (d)d.pop("root") #字典的弹出和列表的pop用法一样print (d)
d = {} #创建字典print (d) #打印字典d["root"] = '/bin/bash' #给字典添加内容d["httpd"] = '/sbin/nologin'print (d) #打印字典全部内容print (d["root"]) #打印字典key对应的内容name = "root"if name in d.keys(): #判断是否在字典中 print (name+"在字典中")d["nfs"] = "/sbin/nologin" #字典内容的添加方法d["ftp"] = "/sbin/nologin"print (d)test1 = d.popitem() #弹出末尾的内容print (d)print (test1)
split()函数的使用
str = "1234,567\n90"print (str)str1 = str.split(',') #以逗号为分隔符,分割内容,分割后的内容存入列表print (str1) #打印列表
str = "1234,567\n90"print (str)print ("==================")str1 = str.split(',')[0] #以逗号为分隔符,分割内容,只取出第一部分print (str1) #打印列表
str = "1234,567\n90"print (str)print ("==================")str1 = str.split(',') #以逗号为分隔符,分割内容,只取出第一部分print (str1) #打印列表str2 = str.split('\n')[1] #以换行符为分隔符,取出第二部分print (str2)
实验要求:
输入用户名密码
认证成功后显示欢迎信息
输错三次后锁定用户
流程思路:
打开用户和密码文件并存入字典
打开锁文件存入字典
提示用户输入用户名和密码
如果输入错误再次提示输入,重复三次,三次之后将该用户锁定,紧有保存的用户名
#coding = utf-8password = {} #创建字典passwd = open('D:\passwd.txt','r') #以只读的模式打开,确保文件存在否则报错for n in passwd.readlines(): #读取文件的全部内容 k = n.split('\t')[0] #以tab为分割取出用户名 #print(k) v = n.split('\t')[1] #以tab为分割取出密码 #print (v) m = v.split('\n')[0] #以回车为分割符,取出密码的完整内容 #print (m) password[k] = m#print (password) #如果要看执行效果,就把那几个#去掉passwd.close()lock = {}look = open('D:\socket.txt','r')for i in look.readlines(): k1 = i.split('\n')[0] lock[k1]=k1 print (k1)print (lock)count = 0look.close()username = input("请输入用户名:")if username in lock.keys(): print ("该用户已被锁定:")else: pwd = input("请输入密码:") if pwd == password[username]: print ("登录成功") else: while count < 2: pwd = input("请输入密码:") if pwd == password[username]: break count+=1 else: sok = open("D:\socket.txt",'a+') sok.write(username+'\n') sok.close() print ("登录次数过多,用户被锁定")
- Python3练习-输入用户名输入三次错误即锁定该用户,提示登录失败
- 练习:用户登录,如连续三次输入错误,则锁定,之后不能再登录。
- 密码输入三次错误后锁定用户功能C#源代码
- 模拟用户登录情景,并且只能登录三次,只允许输入三次密码,如果密码正确则提示登录成功,如果密码三次均错误,则退出程序。
- vs2012打开提示加载失败--该项目需要用户输入
- python实现简单的用户密码登录控制(输入三次就锁定用户)
- 编写代码实现,模拟用户登录情景,并且只能登录三次。 只允许输入三次密码,如果密码正确则提示登录成,如果三次均输入错误,则退出程序。
- 编写代码实现,模拟用户登录情景,并且只能登录三次,只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。
- .编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。(细节提示)
- 编写代码模拟三次密码输入的场景。最多能输入三次密码,密码正确,提示“登录成功”, 密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。
- 编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序
- 编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。
- 黑马程序员之C#编程基础学习笔记:提示用户输入用户名,然后再提示输入密码,如果用户名是"admin"并且密码是“888888”,则提示正确,否则提示错误,如果用户名不是admin还提示用户用户名不存在
- 实现用户登录时若没有输入用户名,给出用户名不能为空的提示,若没有输入密码,给出密码不能为空的提示
- vs2012打开提示加载失败--该项目需要用户输入, (打开cocos2dx 2.2项目.sln )
- vs2012打开提示加载失败(该项目需要用户输入)
- oracle的system账户用normal模式登录失败,提示用户名或密码错误,但是如果用sysdba登录,即使不输入密码,或者密码错误也能登录成功。
- VS2012关于cocos2d-x的解决方案加载失败(提示:该项目需要用户输入cocos2d加载失败)
- Map,List 迭代器的使用
- 练习5
- 【贪心+ST算法+堆】BZOJ2006(NOI2010)[超级钢琴]题解
- css3阴影被遮罩后面的div给遮住了!
- data时间格式转换
- Python3练习-输入用户名输入三次错误即锁定该用户,提示登录失败
- Android项目中使用piwik统计埋点
- VFS结点
- 小探索--LintCode 滑动窗口的中位数
- Spring教程____SpringMVC入门小列子(主流模式,精简模式)
- SELinux
- Angular如何在模板驱动表单中自定义校验器
- DB2 创建数据库缓冲池和表空间
- jQuery-为动态添加的元素绑定事件