一:登录接口
编写思路
python登录接口登录三次失败锁定:
一:建一个数据库文件保存用户名和密码,用来判断用户是否存在
二:用户锁定文件,当用户登录三次错误后记录用户信息进入锁定文件,下次登录时就遍历该文件里用户是否存在,存在就锁定退出
三:设置一个3次循环
四:用户输入用户名密码
五:判断用户名密码是否正确
六:用户名密码正确登录成功打印欢迎信息,否则提示错误,在重新循环,超过3次锁定结束
流程图
代码实现,由于自己初学python,对于文件夹的操作还不是太熟,所以这里存在了一个bug,无论是哪一个用户在第三次输入的时候都会被锁定,不过
可以设置一个标记为每一个用户,统计登录次数,然后这个标记为0,每循环一次就加一,为三时就锁定解决这个bug,分辨某个用户输入了几次
1 #/usr/bin/env python 2 #lock_file 锁定文件 3 #user_file 账户文件 4 import sys 5 i=0 6 a=3 7 p=2 8 while i<a: 9 name=input("请输入用户名:") #提示用户输入 10 lock_file=open('lock_file.txt','r+') #打开锁定文件 11 lock_list=lock_file.readlines() #遍历锁定文件 12 for lock_line in lock_list: #读取一行 13 lock_line=lock_line.strip(' ') #去掉换行符 14 if name==lock_line: #判断用户输入的是否存在锁定文件里,去掉换行符 15 sys.exit('用户%s已经被锁定,退出'%(name)) #提示用户已锁定,并退出程序 16 user_file=open('acount_file.txt','r') #打开账户文件 17 user_list=user_file.readlines() #遍历账户文件 18 for user_line in user_list: #读取一行 19 (user,password)=user_line.strip(' ').split() #判断用户输入信息是否正确 20 if name==user: 21 hh=2 22 while k<3 and hh>=0: 23 pas=input("请输入密码:") 24 if pas==password: #判断输入的用户密码是否正确 25 print('欢迎来到管理平台,用户%s'%(name)) #密码正确进入后台返回信息 26 sys.exit(0) #返回一个状态码 27 else: #密码不正确执行下面操作 28 if hh >=0: 29 print('用户%s密码错误,请重新输入,还有%s次机会'%(name,hh)) #打印错误提示信息 30 hh-=1 #错误次数累加 31 else: 32 lock_file.write(name+' ') #错误次数超过时,把超过次数的追加到锁定文件 33 sys.exit('用户%s达到最大登录次数,将被锁定并推出'%(name)) #退出程序并提示 34 else: #当用户名无匹配时输入,跳过继续循环 35 pass 36 else: #用户输入错误时执行如下操作 37 if p>0: 38 print('用户%s不存在,请重新输入,还有%s次机会'%(name,p)) #用户输入错误时提示输入错误并统计错误次数 39 p-=1 40 elif p==0: 41 lock_file.write(name+' ') #如果错误次数达到3次 42 sys.exit('用户%s达到最大登录次数,将被锁定并退出'%(name)) #退出程序并提示 43 else: 44 sys.exit('用户%s不存在,退出'%(name)) 45 lock_file.close() #关闭打开的文件 46 user_file.close()
二:三级菜单
编写思路
利用一个if嵌套循环,循环多次用户的选择
代码实现:
1 #/usr/bin/env python 2 dming1=int(input("请选择城市:1:北京|2:上海|3:重庆|4:返回上一级|5:结束")) 3 while dming1==1: 4 dming2=int(input('请选择城区:1:昌平|2:海淀|3:西城|4:返回上一级|5:结束')) 5 if dming2==1: 6 dming3=int(input('请选择地名:1:超市|2:学校|3:地铁|4:返回上一级|5:结束')) 7 if dming3==1: 8 print("超市") 9 elif dming3==2: 10 print("学校") 11 elif dming3==3: 12 print('地铁') 13 elif dming3==4: 14 print('返回上一级') 15 continue 16 else: 17 break