我有一个奇怪的问题,我不知道为什么会发生这种情况。我觉得很难解释,但在这里。我的程序工作正常,检查长度,甚至力量。我的问题是,如果输入以任何方式第一次失败,然后重新输入,并且是正确的长度和强度,它将重新要求密码输入。我想这是因为最后一个像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()
请解释让'passwordbegin'从一个嵌套循环内调用自己的原因,其中最内层的循环被明确地写成无限循环。 – 2014-10-18 18:59:44
对不起,我不是最好的Python,我只是一个初学者。我已经这样做了,所以如果Password_Strength == 1,然后按Enter键重新启动功能 – user3411623 2014-10-18 19:06:24