2016-05-01 2 views
0

Я пытаюсь получить инструкцию if, но по некоторым причинам она не работает. Это должно быть очень просто.if (строка или строка или строка) не в переменной

Предположим, что строка title = "Today I went to the sea"

Мой код:

if "Today" or "sea" in title: 
     print 1 

if "Today" or "sea" not in title: 
     print 1 

Обе спецификации приводят к 1.

ответ

0

изменить код для этого:

if "Today" in title or "sea" in title: 
    print 1 

(аналогично для вторая часть кода).

Как работают if операторы, они оценивают выражения, соединенные словами типа or или and. Так что ваше заявление было чтение, как это:

if ("Today") or ("sea" in title): 
    print 1 

Поскольку "Today" является truthy это всегда вычисляемая true

+2

Почему голос? – winhowes

1

я гарантирую это был дан ответ где-то еще на SO, и вы должны сначала проверить, там, прежде чем задать новый вопрос ,

Проблема с кодом:

if 'Today' or 'sea' in title: 

Это проверяет, является ли «сегодня» является истинным или «море» в названии, «сегодня» == тип (строка), следовательно, существует/Правда, ' sea ​​'в заголовке == Истина и имеет значение True, if 'today' or 'sea' not in title' today 'снова является типом (string) и поэтому существует/True и' sea 'не в заголовке = False и снова оценивается как True. Как это исправить! if 'Today' in title or 'Sea' in title: или ниже, чтобы сделать его легко изменяемым! Удачи!

strings_to_compare = ['Today', 'sea', 'etc...'] 

for i in strings_to_compare: 
    if i in title: 
     print i 
Смежные вопросы