Python小程序之用户登陆接口
2024-09-29 12:39:43
编写登陆接口
- 输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后锁定
程序逻辑图:
代码:
#!/usr/bin/env python
#_*_ coding:UTF-8 _*_
#__author__ = lee sir import sys userinfo = r'D:\Python_Scripts\day1\userinfo.txt'
userlock = r'D:\Python_Scripts\day1\userlock.txt' #用户输入用户名和密码
def user_input():
name = input("username:")
passwd = input("password:")
return name,passwd #判断用户是否是已注册用户
def judge_register(user):
with open(userinfo) as fd:
for info in fd.readlines():
username,password = info.split()
if user == username:
return True
else:
return False #注册用户
def register_user(user,password):
fd = open(userinfo,'a+')
fd.write('%s %s\n' % (user,password))
sys.exit('user register Success!') #判断用户名密码正确性
def judge_password(user,passwd):
with open(userinfo) as fd:
for info in fd.readlines():
username,password = info.split()
if user == username and passwd == password:
return True
else:
return False #测试用户是否被锁定
def test_user(user):
with open(userlock) as fd:
for info in fd.readlines():
if user == info.strip('\n'):
return True
else:
return False #锁定用户
def lockuser(user):
fd = open(userlock,'a+')
fd.write('%s\n' % user )
fd.close()
sys.exit("Your Account is locking !!") #主函数
def main():
count = 0
while count < 3:
username,password = user_input() #获取用户输入的用户名和密码
judge_register_result = judge_register(username)
if judge_register_result: #启动登陆流程
test_user_result = test_user(username) #判断用户是否被锁定
if test_user_result:
sys.exit('Sorry,Your Account is locked !!')
else: #验证用户名密码是否正确
judge_password_result = judge_password(username,password)
if judge_password_result:
sys.exit('Hello,Welcome login!!')
else:
if count < 2:
print('Username or Password is Wrong,You have %s chance' % (2-count))
count += 1
else: #启动注册流程
user_choice = input('Are you want to register ? [y/n]')
if user_choice == 'y' or user_choice == 'Y':
register_user(username,password)
sys.exit('register successful,Please relogin !')
elif user_choice == 'n' or user_choice == 'N':
sys.exit('Bye Bye')
else:
sys.exit('Input Error,Bye Bye!')
else: #三次失败 锁定帐户
lockuser(username) if __name__ == '__main__':
main()
最新文章
- tst、cmp、bne、beq指令
- C# 线程(二):关于线程的相关概念
- windows版爬取csdn
- Stars(BIT树状数组)
- java调用webservice
- 【2017年新篇章】 .NET 面试题汇总(一)
- CI Weekly #16 | 从另一个角度看开发效率:flow.ci 数据统计功能上线
- 第一周作业.四则运算生成器(基于python)
- JavaScript递归原理
- 小强学渲染之Unity Shader编程HelloWorld
- bzoj2086 Blocks
- vue路由vue-router的使用
- 大话Json对象和Json字符串
- MFC笔记5
- CentOS下防御或减轻DDoS攻击方法(转)
- 重启uwsgi脚本备份
- 第2节 常用软件安装-JDK和Tomcat
- golang martini 源码阅读笔记之martini核心
- cocos2d-x游戏引擎核心之五——触摸事件和触摸分发器机制
- sqlldr load UTF8 error