организация операторов if в циклах for для извлечения определенных данных из строки - PullRequest
0 голосов
/ 04 октября 2019

У меня есть следующее

items=' g energy 4"3/4 drilling jar'
print(items.split())
if 'energy' or 'ge' in items.split():
    print('E')
if 'slb' or 'schlumberger' in items.split():
    print('S')
if 'oes' or 'overseas' in items.split():
    print('O')

output 
E
S
O

, что я хочу, чтобы проверить, есть ли какие-либо слова в строке, но я получаю, что он говорит мне, что все слова находятся в строке, которую я хочупроверить слово, а не символы слова, как я могу обойти это, чтобы достичь этого?

1 Ответ

1 голос
/ 04 октября 2019

ваше понимание или не совсем правильно.

Если взять одну из вас if строку: if 'slb' or 'schlumberger' in items.split() и использовать печать, чтобы оценить ее истинность

#you are essentially saying this
print(bool('slb'))
#or this
print(bool('schlumberger' in items.split()))

ВЫХОД

True
False

Так что вы можете видеть, что 'slb' вернет true, а 'schlumberger' in items.split() вернет false.

Поскольку вы используете or, то все, что слева от or будет оцениваться первым. Так как 'slb' возвращает true, or не будет проверять другую сторону и просто скажет, что это if true, и напечатает ваше письмо.

Вместо этого вам нужно проверить каждую строку в элементах, разделенныхor.

items=' g energy 4"3/4 drilling jar'.split()
print(items)
if 'energy' in  items or 'ge' in items:
    print('E')
if 'slb' in items or 'schlumberger' in items:
    print('S')
if 'oes' in items or 'overseas' in items:
    print('O')
...