内容简介:day1作业:编写登陆接口
作业一:编写登陆接口
1.输入用户名和密码
2.认证成功后显示欢迎信息
3.输错三次后锁定
思路:要求是编写登陆接口,那么要有一个存放用户信息的模块;三次后锁定,要有一个存放锁定用户信息的模块;我们知道,保存用户信息有两种方式,一种是数据库保存,一种是文件保存,现在我们只学习了文件保存,因此要有两个文件,一个是用户信息文件,一个是锁定用户信息文件。
要从文件中读取信息,添加信息,修改信息。
readme:
(1)用户输入用户名;
(2)用户名去锁定文件中验证是否锁定;如果锁定让用户联系管理员解决;
(3)如果没有锁定去用户文件验证用户是否存在,存在让用户输入密码,输入成功后显示欢迎信息;输错三次后锁定用户;
(4)如果用户不在用户文件中,提示用户没有注册,需要注册,编写注册模块,让用户注册,注册之后添加用户到用户列表中,并且显示欢迎信息,不让用户在进行输入,自动链接到登录状态。
流程图如下:
active = None
#程序执行的标识符
def verification(username):
"""验证用户是否锁定"""
locked_users = []
with open("locked_file") as locked_f:
for line in locked_f:
locked_user,locked_pwd = line.split(":")
locked_users.append(locked_user)
print(locked_users)
if username in locked_users:
print("对不起,你的用户名已经被锁定,请联系管理员!")
else:
active = True
return active
def is_registered(username):
"""验证用户是否注册,注册就让用户登录,未注册让用户选择重新输入或者注册"""
users = {}
with open("active_file","r+") as f:
for active_line in f:
user,pwd = active_line.split(":")
users[user] = pwd
if username in users.keys():
test_num = 0
while test_num < 3:
user_pwd = input("请输入您的密码:")
if user_pwd == users[username]:
print("welcome back,have a good time!")
return False
else:
test_num += 1
else:
#用户输入三次以上锁定用户,使用的是while...else...方法
print("对不起,你输入的次数过多,你的用户已经被锁定,请联系管理员!")
mes = "\n" + username + ":" + users[username]
with open("locked_file","a") as f1:
f1.write(mes)
return False
else:
print("您输入的用户名不存在,请按照下面的提示选择!")
print("注册:请输入1\n登录:请输入2")
num = input("请输入你的选择:")
if num == "1":
register_name = input("请输入你要注册的用户名:")
while True:
register_pwd = input("请输入你的密码:")
register_pwd2 = input("请再次输入你的密码:")
if register_pwd == register_pwd2:
break
else:
print("您输入的密码不对,请重新输入")
message = "\n" + register_name + ":" + register_pwd
print("Thank for your registing,have a good time!")
with open("active_file","a") as f_obj:
f_obj.write(message)
return False
elif num == "2":
user_name = input("请重新输入你的用户名:")
verification(user_name)
if __name__ == "__main__":
username = input("请输入你的用户名:")
active = verification(username)
while active:
active = is_registered(username)
上面代码实现了验证和锁定的功能,也实现了新用户的注册功能,但是有一个缺陷,就是当用户锁定的时候没有从这个当前文件中删除,添加到锁定用户信息的文件中,往文件中添加信息很简单,但是从文件中删除一条信息却不是很简单,不能像列表那样随心所欲的操作。只能先进行转换,而且列表中操作文件的时候,换行符等等这些东西有很恶心。上面代码会进行如下转换,学习本来就是一件繁琐的事情,但是也要去做的完美,下面会参考别人写的代码,学习一下别人如何实现文件中不需要的信息的删除,然后好好完善一下上面的代码。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 基于顺丰同城接口编写sdk,java三方sdk编写思路
- 抖音去水印详细原理步骤及接口编写
- 如何编写接口测试用例?测试工程师必备技能!
- Node编写API接口,ajax实现增删改查
- ????????Koa编写的微信小程序码生成接口
- 用 Go 开发接口服务--快速编写一个 Web 服务器
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
UNIX环境高级编程
W.Richard Stevens Stephen A.Rago、Stephen A. Rago / 人民邮电出版社 / 2006-2 / 99.00元
本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的更新版。在本书第一版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版的风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信......一起来看看 《UNIX环境高级编程》 这本书的介绍吧!