Python中的条件“或”运算符未正确验证

时间:2019-05-30 05:30:16

标签: python-2.7

status= None
if 'Up' or 101 in status:
    print "Inside If statement"
else:
    print "Inside Else Statement"

代码流进入“ If”循环内,并显示“ Inside If语句”。状态实际上是“无”,通过阅读代码,它应该打印“ Inside Else Statement”。我可以修改验证部分,并使其在else语句中执行。但是我想知道在这种情况下如何返回“ True”

if 'Up' or 101 in status:

1 个答案:

答案 0 :(得分:0)

Python中的字符串是虚假的,也就是说,空字符串('')等效于False,其他字符串是True

您的状况被评估为(括号仅用于说明目的)

if ('Up') or (101 in status):

由于'Up'始终为True,因此它将始终位于if块内。

您可以改写:

if 'Up' in status or 101 in status:

或更any的通用方式是:

if any(x in status for x in ('Up', 101)):

您可以为此in this question

找到更多答案