Проверка наличия строки в Python

Обработка строк – обычная задача на любом языке программирования. В Python существует два общих способа проверки, содержит ли строка другую строку.

Проверка наличия строки в Python

Строка в Python поддерживает оператор in, который позволяет проверить, является ли одна строка частью другой. Синтаксис оператора in следующий:

sub in str

Он возвращает True, если подстрока “sub” является частью “str”, в противном случае возвращает False. Давайте рассмотрим несколько примеров использования оператора in в Python.

str1 = 'I love Python Programming'

str2 = 'Python'

str3 = 'Java'

print(f'"{str1}" contains "{str2}" = {str2 in str1}')
print(f'"{str1}" contains "{str2.lower()}" = {str2.lower() in str1}')
print(f'"{str1}" contains "{str3}" = {str3 in str1}')

if str2 in str1:
    print(f'"{str1}" contains "{str2}"')
else:
    print(f'"{str1}" does not contain "{str2}"')

Вывод:

"I love Python Programming" contains "Python" = True
"I love Python Programming" contains "python" = False
"I love Python Programming" contains "Java" = False
"I love Python Programming" contains "Python"

Если вы не знакомы с строками, начинающимися с префикса “f” в Python, это новый способ форматирования строк, представленный в Python 3.6. Вы можете узнать больше об этом в статье f-строки в Python.

При использовании оператора in внутренне вызывается функция __contains__(). Мы также можем использовать эту функцию напрямую, однако рекомендуется использовать оператор in для улучшения читаемости кода.

s = 'abc'

print('s contains a =', s.__contains__('a'))
print('s contains A =', s.__contains__('A'))
print('s contains X =', s.__contains__('X'))

Вывод:

s contains a = True
s contains A = False
s contains X = False

Использование функции find() для проверки наличия подстроки в строке

Мы также можем использовать функцию find() строки, чтобы проверить, содержит ли строка подстроку или нет. Эта функция возвращает первую позицию индекса, где найдена подстрока, в противном случае возвращает -1.

str1 = 'I love Python Programming'

str2 = 'Python'

str3 = 'Java'

index = str1.find(str2)
if index != -1:
    print(f'"{str1}" contains "{str2}"')
else:
    print(f'"{str1}" does not contain "{str2}"')

index = str1.find(str3)
if index != -1:
    print(f'"{str1}" contains "{str3}"')
else:
    print(f'"{str1}" does not contain "{str3}"')

Вывод:

"I love Python Programming" contains "Python"
"I love Python Programming" does not contain "Java"

Вы можете проверить полный сценарий на Python и больше примеров на Python в нашем репозитории GitHub.

Source:
https://www.digitalocean.com/community/tutorials/python-check-if-string-contains-another-string