Python中的密码验证

Python中的密码验证,python,loops,while-loop,nested,verification,Python,Loops,While Loop,Nested,Verification,我正在学习Python一段时间,试图解决以下问题: 下面给出了验证程序的一部分。当用户输入密码时,将对其进行检查,以确保密码在8到15个字符之间,然后再次键入密码以验证密码。如果。。。ELSE声明。编写并测试程序 password1 = input("Please enter a new password, between 8 and 15 characters: ") match = False while CONDITION 1 while CONDITION 2 pas

我正在学习Python一段时间,试图解决以下问题: 下面给出了验证程序的一部分。当用户输入密码时,将对其进行检查,以确保密码在8到15个字符之间,然后再次键入密码以验证密码。如果。。。ELSE声明。编写并测试程序

password1 = input("Please enter a new password, between 8 and 15 characters: ")

match = False

while CONDITION 1

  while CONDITION 2

    password1 = input ("Password must be between 8 and 15 characters - please re-enter: ")
  endwhile

  password2 = input ("Please verify password: ")

  if ....

    print 
  else

  endif

endwhile
我完成了任务(b),但在任务(a)中,我遇到了while循环条件“while match:”的问题。当我保留变量match=False并输入密码时,循环会立即终止,不会使用if.进行验证。。else声明。如果我写入match=True,并且在第一次尝试时输入了错误的字符数(使用正确的数字,它将再次终止循环),程序将忽略字符数进行验证。如果密码相同(示例111和111),它将返回循环并再次请求具有所需字符数的密码。然后,如果我输入了正确数量的字符,并且密码验证是相同的,那么它会像预期的那样终止程序。我认为while循环中带有条件“match”的东西是不正确的,但无法确定它应该是什么。谢谢

password1 = input("Please enter a new password, between 8 and 15 characters: ")
match = True
while len(password1) < 8 or len(password1) > 15:
  password1 = input ("Password must be between 8 and 15 characters - please re-enter: ")
  while match:
    password2 = input ("Please verify password: ")
    if password1 == password2:
      print ("Password is valid")
      break
    else:
      print ("Password is invalid")
password1=input(“请输入一个8到15个字符的新密码:”)
匹配=真
而len(password1)<8或len(password1)>15:
password1=输入(“密码必须介于8到15个字符之间-请重新输入:”)
比赛时:
password2=输入(“请验证密码:”)
如果password1==password2:
打印(“密码有效”)
打破
其他:
打印(“密码无效”)

仅当第一次输入错误的字符数时,才进行匹配。如果用户第一次输入8到15个字符,会发生什么情况?第一个while循环不会执行,因此不会执行任何操作。必须在循环外部检查条件1(长度介于8和15之间),第二个while循环必须保持分开

pass1 = input('Enter a password : ')
while len(pass1) < 8 or len(pass1) > 15:
    print('Incorrect, try again')
    pass1 = input('Enter a password : ')
# Program reaches here only if pass1 is between 8 to 15 characters, otherwise first loop will be infinite
pass2 = input('Verify the password : ')
if pass1 == pass2:
    print('Valid')
else:
    while pass1 != pass2:
        pass2 = input('Invalid. Re-enter the correct password : ')
pass1=input('输入密码:')
当len(pass1)<8或len(pass1)>15时:
打印('不正确,请重试')
pass1=input('输入密码:')
#只有当pass1在8到15个字符之间时,程序才会到达这里,否则第一个循环将是无限的
pass2=input('验证密码:')
如果pass1==pass2:
打印('有效')
其他:
而pass1!=密码2:
pass2=input('无效。请重新输入正确的密码:')

上面的代码首先获取密码1,检查它是否在8-15个字符范围内。如果不是,则第一个while循环将继续执行。当给出有效输入时,它接受密码2并检查是否相等。如果它是第一次匹配,则不需要进一步的while循环。如果不匹配,while循环将继续执行,直到没有提供相同的密码为止。希望这有帮助

仅当第一次输入错误的字符数时才进行匹配。如果用户第一次输入8到15个字符,会发生什么情况?第一个while循环不会执行,因此不会执行任何操作。必须在循环外部检查条件1(长度介于8和15之间),第二个while循环必须保持分开

pass1 = input('Enter a password : ')
while len(pass1) < 8 or len(pass1) > 15:
    print('Incorrect, try again')
    pass1 = input('Enter a password : ')
# Program reaches here only if pass1 is between 8 to 15 characters, otherwise first loop will be infinite
pass2 = input('Verify the password : ')
if pass1 == pass2:
    print('Valid')
else:
    while pass1 != pass2:
        pass2 = input('Invalid. Re-enter the correct password : ')
pass1=input('输入密码:')
当len(pass1)<8或len(pass1)>15时:
打印('不正确,请重试')
pass1=input('输入密码:')
#只有当pass1在8到15个字符之间时,程序才会到达这里,否则第一个循环将是无限的
pass2=input('验证密码:')
如果pass1==pass2:
打印('有效')
其他:
而pass1!=密码2:
pass2=input('无效。请重新输入正确的密码:')

上面的代码首先获取密码1,检查它是否在8-15个字符范围内。如果不是,则第一个while循环将继续执行。当给出有效输入时,它接受密码2并检查是否相等。如果它是第一次匹配,则不需要进一步的while循环。如果不匹配,while循环将继续执行,直到没有提供相同的密码为止。希望这有帮助

我想你和我一样,对这件事还不熟悉。我发现您对问题的代码解释有以下错误: 条件1和2放错了位置 If语句位于错误的循环中。 您的比赛也不会切换

看看这个:

def密码验证():
password1=input('请输入一个新密码,长度在8到15个字符之间:')
匹配=错误
当匹配为False时:
而len(password1)<8或len(password1)>15:
password1=input('密码必须介于8到15个字符之间-请重新输入密码:')
password2=输入('请验证密码:')
如果password1==password2:
打印('密码有效')
匹配=真
其他:
打印('密码无效')
复赛
密码验证()

我想你和我一样,对这件事还不熟悉。我发现您对问题的代码解释有以下错误: 条件1和2放错了位置 If语句位于错误的循环中。 您的比赛也不会切换

看看这个:

def密码验证():
password1=input('请输入一个新密码,长度在8到15个字符之间:')
匹配=错误
当匹配为False时:
而len(password1)<8或len(password1)>15:
password1=input('密码必须介于8到15个字符之间-请重新输入密码:')
password2=输入('请验证密码:')
如果password1==password2:
打印('密码有效')
匹配=真
其他:
打印('密码无效')
复赛
密码验证()

如果第一个密码未通过长度限制,则仅进入第二个循环。请回答问题