Оператор in
В Python есть специальный оператор in, который позволяет проверить, что одна строка находится внутри другой.
Приведённый ниже код:
s = 'https://pygen.ru/'
if 'a' in s:
print('Введенная строка содержит символ а')
else:
print('Введенная строка не содержит символ а')
проверяет, содержится ли в переменной s символ 'a', и выводит:
Введенная строка не содержит символ а
Использование вместе с логическими операторами
Мы можем использовать оператор in вместе с логическим оператором not, например:
s = input()
if '.' not in s:
print('Введенная строка не содержит символа точки')
С помощью оператора in мы можем упростить следующий код, проверяющий, что значение переменной s равно одному из пяти символов 'a', 'e', 'i', 'o', 'u':
if s == 'a' or s == 'e' or s == 'i' or s == 'o' or s == 'u':
print('YES')
до вида:
if len(s) == 1 and s in 'aeiou':
print('YES')
С помощью оператора in мы можем проверять наличие сразу нескольких символов в строке.
Приведённый ниже код:
s = 'Sigma'
print('a' in s)
print('z' in s)
выводит:
True
False
Точное вхождение
Оператор in проверяет, содержится ли одна строка в другой строке как точная последовательность символов. В обеих строках символы должны находиться в том же порядке друг относительно друга и не должны быть разделены другими символами, чтобы выражение с оператором in вернуло значение True.
Приведённый ниже код:
print('ab' in 'abc')
print('ac' in 'abc')
выводит:
True
False
Во втором случае выводится False, потому что строка 'abc' не содержит последовательности символов 'ac' (символы 'a' и 'с' идут не подряд, они разделены символом 'b').
Чувствительность к регистру
Проверка с использованием оператора in чувствительна к регистру.
Приведённый ниже код:
s = 'Alpha'
print('p' in s)
print('P' in s)
выводит:
True
False
Примечания
Примечание. Если строка s1 содержится в строке s2, то говорят, что строка s1 является подстрокой для строки s2. Другими словами, оператор in определяет, является ли одна строка подстрокой для другой строки.