ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

1.python之编写登陆接口

2020-12-26 22:04:06  阅读:177  来源: 互联网

标签:username 帐号 python 接口 user 编写 line txt users


作业:编写登陆接口

    • 输入用户名密码
    • 认证成功后显示欢迎信息
    • 输错三次后锁定



def islocked(username):        #验证帐号是否被锁定
    with open("lock.txt",'r') as f:     #打开lock.txt文件
        users = []                      #定义一个空列表,用于存储所有的帐号
        lines = f.readlines()           #读取文件信息,放入列表易于操作
        for line in lines:
            users.append(line.strip().split(':')[0])    #依次读取列表中的元素,按:切片,追加到users列表
        if username in users:           #如果帐号存在users列表中,提示帐号已被锁定
            print("你输入的帐号%s已被锁定,请联系管理员"%username)
        else:                           #如果帐号不存在users列表中,则调用isregister函数,确认是否注册
            isregister(username)

def isregister(username):               #验证帐号是否注册
    with open("user.txt",'r') as e:
        register_user = []
        user_lines = e.readlines()
        for user_line in user_lines:
            register_user.append(user_line.strip().split(':')[0])
        if username in register_user:
            print("正在登录,请稍候...")
        else:
            print("Sorry %s还没有注册,请注册之后登录"%username)
            message = input("你想注册一个帐号(%s)吗?『yes|no:"%username)
            if message =='yes':
                register(username)
            else:
                sys.exit()
def register(username):             #注册帐号
    _password = input("注册帐号:%s,请输入你的注册密码:"%username)
    with open("user.txt",'a') as p:
        info = f"{username}:{_password}\n"
        p.writelines(info)
    print("注册完成%s"%username)

def userpassword(username):     #输入密码,返回给调用函数
    print("你要登录的帐号为:%s"%username)
    _password=input("请输入你的密码:")
    return _password

def login(username):        #用户登录函数
    islocked(username)
    i=0
    with open("user.txt",'r') as o:
        dic = {}
        user_lines = o.readlines()
        for user_line in user_lines:
            (user, passwd) = user_line.strip().split(":")
            dic[user] = passwd
        while i <3:
            _password = userpassword(username)
            if dic[username] == _password:
                print("Hell,%s欢迎回来"%username)
                break
            else:
                i += 1      #密码失败一次,+1,失败3次调用锁定函数
                if i ==3:
                    add_locked_user(username)
                    print("对不起,你输入的次数太多,用户名已被锁定,请联系管理员")
                    break

def add_locked_user(username):      #锁定函数
    with open("user.txt",'r') as x:
        lines = x.readlines()
        _user = []
        for line in lines:
            _user.append(line.strip().split(":")[0])
        num = _user.index(username)     #根据帐号找到锁定帐号的位置
    with open ("lock.txt",'a') as a:
        a.write("%s\n" %lines[num])     #将锁定帐号信息追加到lock.txt文件
    with open("user.txt",'w') as w:     #打开user.txt文件,
        del lines[num]                  #将锁定帐号删除
        w.writelines(lines)             #将其余帐号信息覆盖写入user.txt

login(username=input("请输入你要登录的帐号:"))


 user.txt

jack:123456
lily:abc123
cici:xyz123

 

 



lock.txt

jjjj:12345
iiii:123455
oppo:111111

 

 

 

标签:username,帐号,python,接口,user,编写,line,txt,users
来源: https://www.cnblogs.com/baozimantou/p/14194561.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有