проверка наличия строки в списке - PullRequest
1 голос
/ 24 марта 2020

Я просто пытаюсь выяснить, почему простой код ниже ничего не возвращает обратно, хотя я почти уверен, что я прав:

mike = [1,2,3,3,"error"]

if "error" in mike == True:
    print(True)

это ничего не возвращает. Почему?

Ответы [ 2 ]

3 голосов
/ 25 марта 2020

Это результат объединения операторов , которое работает для операторов сравнения in, not in, is, is not, <, <=, >, >=, !=, ==. Таким образом,

'error' in mike == True

фактически оценивается как:

'error' in mike and mike == True

, последнее из которых является ложным. Цепочка операторов более полезна для таких вещей, как 0 < x < 5.

Возможно, вы просто хотите

'error' in mike
2 голосов
/ 24 марта 2020

Вы можете принудительно выполнить оценку в нужном вам порядке, используя круглые скобки:

if ("error" in mike) ==True:
    print(True)

или, более точно,

if "error" in mike:
    print(True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...