Оператор 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
определяет, является ли одна строка подстрокой для другой строки.