status= None
if 'Up' or 101 in status:
print "Inside If statement"
else:
print "Inside Else Statement"
Поток кода входит в цикл «Если» и печатает «Внутри оператора If». На самом деле статус None, и, прочитав код, он должен напечатать «Inside Else Statement». Я могу изменить часть проверки и заставить ее выполняться внутри оператора else. Но я хотел бы знать, как возвращается "Истина" для этого условия
if 'Up' or 101 in status:
Строки в 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)):
Вы можете найти больше ответов на этот в этом вопросе
Спасибо за ваше объяснение. Эта часть прояснила меня. если («Вверх») или (101 в статусе):