Обработка строк – обычная задача на любом языке программирования. В 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