• day4作业小代码练习


    登录模块:

      我们无论上那个网站,经常遇到这样的情况,让我们登录这个网站,流程图如下:

      

    思路:

      1.当我们登录网站的时候,我们首先会输入用户名,这个时候,有些网站会提醒我们用户名是否存在,如果我们输入的用户名不存在的话,会出现提示,告诉我们用户名不存在,这个时候,我们就需要重新输入,或者选择注册,当然,我们这里只是让用户重新输入;

      2.用户名存在的话,就需要输入密码,我们知道,输入密码的时候,我们是不验证密码是否正确的,如果直接先验证密码是否正确,也就失去了让用户输入验证码的作用,因此我们总是先不验证密码,而是让用户输入验证码,先验证用户输入的验证码是否正确;

      3.如果验证码不正确,则让用户重新输入验证码;如果验证码正确,那么这个时候就要返回来重新验证密码是否正确;如果密码正确,就登录成功了;否则,如果密码不正确,这个时候,就需要用户重新输入密码,由于这个时候,用户已经输入了用户名,因此不需要再重新输入用户名了,只需要输入密码和验证码即可;即重新输入密码,然后输入验证码;如果密码正确,则登录成功,否则重新输入密码和验证码,验证码是每次输入密码必须输入的;

      要实现上述代码的功能,肯定要使用while循环,由于是逐层检验,因此用户名的输入肯定是一个循环,直到用户输入正确的验证码为止,关键是,如何实现用户名正确,当密码或者验证码输入错误的时候,不需要重新输入用户名,不然会让人鄙视的;这个时候就要考虑,当用户名正确的时候,就要停止这个循环了,不能再执行下一次用户输入密码或验证码的时候循环输入用户名。

      代码的实现如下:

      

    def login(name,password):
        '''用户登录模块,用户登录时候的各种设置,本次实现功能'''
        '''用户登录验证的时候,一般会先判断验证码是否正确,因此要让用户首先验证验证码'''
        active = True
        while True:
            while active:
                username = input("请输入你的用户名:")
                '''首先验证用户名是否存在'''
                users = []
                for user_list in userfile.usernames:
                    users.append(user_list[0])
                if username in users:
                    active = False
                else:
                    print("对不起,您输入的用户名不存在,请重新输入:")
            pwd = input("请输入你的密码:")
    
            while True:
                '''加入一个用户输入验证码的模块,让用户输入验证码'''
                verification_code = str(random.randint(0,9)) + chr(random.randint(65,90)) + str(random.randint(0,9)) + chr(random.randint(97,122))
                print(verification_code)
                test_num = input("请输入验证码:")
                if test_num == verification_code.lower() or test_num == verification_code.upper():
                    '''无论用户输入大小写都可以验证成功'''
                    '''用户验证成功后,开始进行用户自己的认证,是否注册,或者用户名正确'''
                    break
                else:
                    print("您输入的验证码有误,请重新输入!")
            if [username,int(pwd)] in userfile.usernames:
                print("Successful!")
                return (username,pwd)
            else:
                print("对不起,您输入的密码有误,请重新输入:")

      上述代码运行如下:

    请输入你的用户名:geng
    请输入你的密码:123
    3D0t
    请输入验证码:3d0t
    对不起,您输入的密码有误,请重新输入:
    请输入你的密码:222
    8I9z
    请输入验证码:8888
    您输入的验证码有误,请重新输入!
    2G0j
    请输入验证码:8888
    您输入的验证码有误,请重新输入!
    7T1a
    请输入验证码:7t1a
    对不起,您输入的密码有误,请重新输入:
    请输入你的密码:2222
    7X4q
    请输入验证码:7x4q
    对不起,您输入的密码有误,请重新输入:
    请输入你的密码:666
    2O0q
    请输入验证码:2o0q
    Successful!
    ('geng', '666')

      上述代码的执行结果如上所示,当我们想单独停止一个循环的时候,可以给这段循环设置一个标识符,用来开启或者关闭循环,当满足条件的时候,关闭这个循环,让这个循环在执行其他程序的时候不会开启;

       active = True
      while True:
      while active:
        username = input("请输入你的用户名:")
        '''首先验证用户名是否存在'''
        users = []
        for user_list in userfile.usernames:
          users.append(user_list[0])
      if username in users:
      active = False
      else:
        print("对不起,您输入的用户名不存在,请重新输入:")
        pwd = input("请输入你的密码:")

      上述代码,我们就实现了这样的功能,当我们想停止这个循环的时候,我们就让内层循环的标识符关闭。

  • 相关阅读:
    Linux修改时间
    Oracle 审计文件
    system表空间
    Windows操作系统添加永久静态路由
    Linux添加永久静态路由
    如何把excel中的行转为列?
    Linux中测试网络命令
    Linux中查看网络命令
    2018.3.29 网页中嵌套网页的两种方法
    2018.3.29 div内容格式设置
  • 原文地址:https://www.cnblogs.com/gengcx/p/7128805.html
Copyright © 2020-2023  润新知