【发布时间】:2021-09-01 18:30:38
【问题描述】:
我对 Python 很陌生。我正在创建一个程序来开始做一些我认为会是革命性的大事情。然而,当我保存我的代码并对其进行测试时,即使在我输入了与条件不匹配的内容之后,它仍然处于我创建的无限循环中!我能得到一些帮助吗?
代码:
*...snip...* print("You may now choose a password. Your password must: \n"
+ "-be at least 8 characters \n"
+ "-NOT be 'password' \n"
+ "-NOT be an ordered list of numbers \n")
print("What is your password?")
password = input()
if password == "password" or "Password" or "PASSWORD" or "12345678":
while password == "password" or "Password" or "PASSWORD" or "12345678":
print("That password is too weak. Choose another password.")
password = input()
else: *...snip...*
【问题讨论】:
-
您需要像
if password == "password" or password == "Password" or password == "PASSWORD" or password == "12345678":或更简洁的if password.lower() in ("password", "12345678"):那样做。因为所有后面的条件总是评估为 True ,所以你的循环继续进行。这是初学者常见的错误。 -
您好,问题是当您检查
password == "password"是否正常但您必须重写password ==时,现在它只是尝试评估短语or "Password"不是True所以它一直在循环。为了创建更好看的代码,您可以使用:password in ["password", "Password", "PASSWORD", "12345678"]
标签: python infinite-loop