【发布时间】:2019-03-25 21:50:35
【问题描述】:
我正在尝试编写多个 if 语句来检查密码是否满足所有条件,而不是使用 if-elif 语句,它有效但一次只验证一个条件。
我的代码似乎不起作用。当我输入一个包含字母和数字但太长/太短的密码时,代码的输出告诉我它太长/太短但也会触发“else”条件。然后代码不会循环回来。
请谁能帮我理解这里的概念?非常感谢。
import re
while True :
password = input('Enter a password')
if not len(password) >= 6:
print('password too short')
if not len(password) <= 12:
print('password too long')
if not re.search(r'[a-z]', password):
print('password must contain at least a lowercase alphabet')
if not re.search(r'[0-9]', password):
print('password must contain at least a number')
else:
print('your password is fine')
break
【问题讨论】:
-
在每个 if 后使用关键字
continue表示密码错误。在这种情况下,while 循环将从头开始,省略进一步的命令。另外,删除 else -
@Slowpoke 你不会看到 all 错误,如果你使用
1234的密码,你只会触发“太短”而不是其他错误 -
@PatrickArtner 好的,明白了。
标签: python if-statement