【发布时间】:2017-02-26 11:15:32
【问题描述】:
while True:
profilePassword = input("Password: ")
if profilePassword == "":
print("Your password can't be blank!")
continue
else:
pass
for n in profilePassword:
if n == " ":
print("Your password can't contain spaces!")
break
elif n not in "1234567890":
print("Your password has to contain at least one number!")
break
elif n not in "abcdefghijklmnopqrstuvwxyz":
print("Your password has to contain at least one lowercase letter!")
break
elif n not in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
print("Your password has to contain at least one uppercase letter!")
break
else:
continue
所以我正在尝试创建一个程序来检查您的密码是否正确。出于某种原因,“不在”表现不佳。例如,如果我写 asd123,它会说密码必须包含至少一个数字,它有。 为什么会这样,我该如何解决?
【问题讨论】:
-
我会退后一步,通过您正在尝试的逻辑流程与自己交谈。您应该注意到的第一件事是,除非
profilePassword中的第一个字符是数字,否则您的逻辑流程永远不会超过elif n not in "1234567890"。对于其余的elif语句,您将遇到类似的问题。 -
你倒退了。您的代码断言 每个 字符不是空格,而是一个数字 和 一个单词字符。您应该检查 is 是否有一个数字/单词字符,而不是是否有一个 不是 的字符。
-
哦,是的!感谢您的帮助。
标签: python python-3.x