Поиск по сайту:

Python проверяет, содержит ли строка другую строку


Манипуляции со строками — обычная задача для любого языка программирования. Python предоставляет два распространенных способа проверить, содержит ли строка другую строку.

Python проверяет, содержит ли строка другую строку

Строка Python поддерживает оператор. Таким образом, мы можем использовать его, чтобы проверить, является ли строка частью другой строки или нет. Синтаксис оператора 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-strings в 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() для проверки наличия в строке другой подстроки

Мы также можем использовать функцию string 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.