day1作业:编写登陆接口

(野生程序员) (野生程序员)     2022-09-03     544

关键词:

    作业一:编写登陆接口 

    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)

    上面代码实现了验证和锁定的功能,也实现了新用户的注册功能,但是有一个缺陷,就是当用户锁定的时候没有从这个当前文件中删除,添加到锁定用户信息的文件中,往文件中添加信息很简单,但是从文件中删除一条信息却不是很简单,不能像列表那样随心所欲的操作。只能先进行转换,而且列表中操作文件的时候,换行符等等这些东西有很恶心。上面代码会进行如下转换,学习本来就是一件繁琐的事情,但是也要去做的完美,下面会参考别人写的代码,学习一下别人如何实现文件中不需要的信息的删除,然后好好完善一下上面的代码。

   

 

day1作业:登录接口

   作业一:编写登陆接口    1.输入用户名和密码   2.认证成功后显示欢迎信息   3.输错三次后锁定   思路:   (1)用户输入用户名;  (2)去锁定文件中... 查看详情

day1作业--登录接口

作业:编写登陆接口输入用户名密码认证成功后显示欢迎信息输错三次后锁定   知识:   1.循环的使用;  2.continue,break在循环中中断的作用;  3.文件的写入,读取;  4.各基础知识的穿插应用 &n... 查看详情

day1-作业

编写登陆接口输入用户名密码认证成功后显示欢迎信息输错三次后锁定代码如下:#!/usr/bin/envpython#-*-coding:utf-8-*-count=0name="hx"passwd="123"f=open(‘user_black‘,‘r‘)lock_file=f.read()f.close()name=input("请输入用户名:")foriinrange(1):iflock_fil 查看详情

day1-作业2

作业二:编写登陆接口输入用户名密码认证成功后显示欢迎信息输错三次后锁定编程思想:1.先初始化需要的值2.写主程序逻辑,判断账号密码3次记录黑名单,并锁定3.读取黑名单并判断是否输入为黑名单用户#!/usr/bin/envpython#-*-co... 查看详情

day1作业---登录接口及多级菜单

作业一:编写登录接口输入用户密码认证成功后显示欢迎信息输错三次后锁定作业二:多级菜单三级菜单可一次选择进入各子菜单所需新知识点:列表、字典 查看详情

day1:作业编写登录接口并画出相应的流程图

作业要求:1.输入用户名密码2.认证成功后显示欢迎信息3.输错三次后锁定代码如下_user_list=[]_user_dict={}_login_error_count=0whileTrue:user_naming=input(‘Plassinputyourname:‘)user_password=input(‘Plassinputyourpassword:‘)user_data=open(‘Us 查看详情

day1作业编写登录窗口

作业一:编写登录接口   (1)输入用户名和密码;  (2)认证成功后显示欢迎信息;  (3)输错三次后锁定。   思路:我们知道,要想让程序记住之前输入多少次,锁定用户,那么可以使用数据库来... 查看详情

老男孩作业day1—用户登陆(代码片段)

跟着老男孩培训写的第一次作业需求:1、用户可以通过用户名和密码登陆;2、密码输入错误三次后即锁定用户3、把用户名、密码、锁定后的用户放在文件里4、如果没有该用户提示还没有注册5、使用锁定的用户登陆会提示此用... 查看详情

编写登陆接口

#作业:编写登陆接口##基础需求:##让用户输入用户名密码#认证成功后显示欢迎信息#输错三次后退出程序dic={‘egon1‘:{‘password‘:‘123‘,‘count‘:0},‘egon2‘:{‘password‘:‘123‘,‘count‘:0},‘egon3‘:{‘password‘:‘123‘,‘count‘:... 查看详情

老男孩day1作业二

作业内容:(1)编写登录接口(2)认证成功后显示欢迎信息(3)输错三次锁定 以下为代码,分为两个部分的代码,一是register.py,另一个是login.py;其中register.py实现的注册功能,客户可输入用户名密码,用户名密码保存在... 查看详情

day1(代码片段)

作业1编写登录接口?输入用户名密码?认证成功后显示欢迎信息?输错三次后锁定---思路:用户信息文件、密码文件、检测用户名,是否让登录用户名密码判定 作业2多级菜单市区县?三级菜单?可依次选择进入各子菜单?所需新知... 查看详情

day1作业:编写登录窗口一个文件实现

   思路:   1、参考模型,这个作业我参考了linux的登录认证流程以及结合网上银行支付宝等锁定规则;    1)认证流程参考的是Linux的登录:当你输入完用户名密码后再验证用户名是否存在用... 查看详情

day1:编写登入接口

输入用户名密码;登入成功后提示欢迎信息;三次登入失败后锁定。编写如下:#Author:EwanWangforiinrange(3):username=input("username:")password=input("password:")ifusername=="Wang"andpassword=="123":print("Welcometothenewworld!")breakelse:pri 查看详情

beta冲刺--day1

这个作业属于哪个课程2021春软件工程实践S班这个作业要求在哪里团队作业六——Beta冲刺+事后诸葛亮这个作业的目标Beta冲刺文档SCRUM成员冲刺描述成员昨日完成存在问题问题解决方案或描述下一日冲刺安排ZLX安排完善前后端对... 查看详情

day1_17-9-3

一、应用练习1.需求练习编写登陆接口要求:让用户输入用户名密码认证成功后显示欢迎信息输错三次后退出程序#!/usr/bin/envpython#coding:utf-8time=0data={‘zhangsan‘:{‘ps‘:‘zs123‘},‘lisi‘:{‘ps‘:‘ls123‘},}whiletime<3:name=input(‘请... 查看详情

day1作业要求

Day1作业作业需求博客模拟登录三级菜单博客地址杨振伟Day1博客地址模拟登录1.程序说明实现功能如下用户输入密码,密码验证后登录成功用户登录成功后提示登录信息用户输入3次错误密码后锁定2.程序测试账号测试账号:admin测... 查看详情

编写登陆接口

 编写登陆接口:   输入用户名密码   认证成功后显示欢迎信息   输错三次后锁定  1#!/usr/bin/envpython2#-*-coding:utf-8-*-345name="mike"6pswd="1"7importgetpass8count=09whilecoun 查看详情

编写登录接口-第一个作业

编写登录接口让用户输入用户名密码认证成功后显示欢迎信息输错三次后退出程序1count=12whilecount<4:3name=input(‘name:‘)4password=input(‘password:‘)5ifname==‘egon‘andpassword==‘123‘:6print(‘欢迎登录‘)7break8else:9print(‘不好意思,您已... 查看详情