我有一个奇怪的问题,我不知道为什么会这样。我觉得很难解释,但事情是这样的。我的程序运行良好,检查长度甚至强度。我的问题是,如果输入第一次以任何方式失败,然后重新输入,并且长度和强度正确,它将重新要求输入密码。我想这是因为最后一个类似passwordbegin()
的程序,但是如果我删除它,程序显然不会运行。谁能给我一个提示或解释一下为什么会发生这种情况?提前谢谢
def passwordbegin():
Upper = 0
Lower = 0
Number = 0
pass_check = True
while pass_check is True:
passw = raw_input("Please enter your password. It must be between 6 and 12 characters long and contain atleast capital letter, lowercase letter and number.")
if len(passw) < 6:
print("Your password is too short, it must be at least 6 characters long")
elif len(passw) > 12:
print("Your password is too long, it must be no more than 12 characters long")
else:
print("Your password is the correct length.")
pass_check = False
if pass_check is False:
for char in passw:
if char.isupper():
Upper =+ 1
if char.islower():
Lower =+ 1
if char.isdigit():
Number =+ 1
Password_Strength = Number + Lower + Upper
if Password_Strength == 1:
print("Your password is weak, trying adding Numbers or Upper and Lowercase Letters")
raw_input("Press enter to restart the program")
while True:
passwordbegin()
if Password_Strength == 2:
print("Your password is medium strength, try adding Upper or Lowercase Letters and Numbers")
raw_input("Press enter to restart the program")
while True:
passwordbegin()
elif Password_Strength == 3:
print("Your password is strong and secure, thank you for entering!")
passwordbegin()
不要使用
while pass_check is True:
它不会做你认为它会做的事情您应该在通过检查时使用
while pass_check == True
或更好的`while\u check:主要的问题是您正在再次调用您的函数,而不仅仅是让它循环
代替调用
passwordbegin()
-使用continue
(返回循环的开始),您不需要在while True:
循环中继续相关问题 更多 >
编程相关推荐