Jos*_*ana 1 python if-statement
如果一个求值为true,Python中有没有办法继续检查if else语句的条件?这是我的代码:
status = True
if pass_len(S) == False:
print ('Password must be at least 6 characters long')
status = False
elif pass_upper(S) == False:
print('Password must include upper case letters')
status = False
elif pass_lower(S) == False:
print('Password must include lower case letters')
status = False
elif pass_nums(S) == False:
print('Password must include digits.')
status = False
else:
status = True
return status
Run Code Online (Sandbox Code Playgroud)
例如,如果密码没有大写字符或数字,我想打印这两个消息,而不仅仅是"密码必须包含大写字母",它就在那里结束.我尝试通过退回每个声明来解决这个问题,但它没有奏效.任何帮助表示赞赏,谢谢.
不要使用elif,使用if将确保检查条件.elif只会在if语句求值时检查False
In [40]: foo = 3
In [41]: if foo == 3:
....: print (foo)
....: if foo != 4:
....: print ("checked too")
....:
3
checked too
Run Code Online (Sandbox Code Playgroud)
status = True设置状态True已经这样就return status不需要了else
另一种执行此操作的方法是较短的方法,它还为您提供了触发列表错误的列表:
errors = [message for (has_error, message) in (
(not pass_len(S), 'Password must be at least 6 characters long'),
(not pass_upper(S), 'Password must include upper case letters'),
(not pass_lower(S), 'Password must include lower case letters'),
(not pass_nums(S), 'Password must include digits.'),
) if has_error]
Run Code Online (Sandbox Code Playgroud)