Как проверить, содержит ли строка подстроку в Python

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять, содержит ли строка подстроку на Python. В рамках практики (лабораторной работы) вас научат определять подстроки с использованием срезов (slicing) как с положительными, так и с отрицательными индексами. Вы создадите скрипт на Python с именем substrings.py, чтобы извлекать подстроки из заданной строки и выводить их в консоль.

В практике (лабораторной работе) показано, как использовать срезы (slicing) для определения подстрок, извлекая части строки, указывая начальный и конечный индексы. Вы научитесь извлекать такие подстроки, как "Hello" и "LabEx" из строки "Hello, LabEx!", а также как получить доступ к последнему символу строки с использованием отрицательных индексов. В практике (лабораторной работе) содержатся инструкции по запуску скрипта и проверке вывода.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") subgraph Lab Skills python/strings -.-> lab-559567{{"Как проверить, содержит ли строка подстроку в Python"}} python/conditional_statements -.-> lab-559567{{"Как проверить, содержит ли строка подстроку в Python"}} end

Определение подстрок

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

Начнем с создания скрипта на Python с именем substrings.py в каталоге ~/project. Вы можете использовать редактор VS Code для создания этого файла.

## ~/project/substrings.py
string = "Hello, LabEx!"

Этот скрипт инициализирует переменную строкового типа с именем string значением "Hello, LabEx!".

Теперь добавим код для извлечения подстрок из этой строки. Простой способ определить подстроку - использовать срезы (slicing). Срезы позволяют извлекать часть строки, указав начальный и конечный индексы.

Добавьте следующие строки в файл substrings.py:

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = string[0:5]  ## Символы с индекса 0 до 4
substring2 = string[7:12] ## Символы с индекса 7 до 11

print(substring1)
print(substring2)

В этом примере substring1 будет содержать символы с индекса 0 до (но не включая) индекса 5, то есть "Hello". substring2 будет содержать символы с индекса 7 до (но не включая) индекса 12, то есть "LabEx".

Чтобы запустить скрипт, откройте терминал в VS Code и выполните следующую команду:

python ~/project/substrings.py

Вы должны увидеть следующий вывод:

Hello
LabEx

Вы также можете использовать отрицательные индексы для определения подстрок. Отрицательные индексы считаются от конца строки. Например, string[-1] ссылается на последний символ строки.

Измените файл substrings.py, добавив следующее:

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = string[0:5]  ## Символы с индекса 0 до 4
substring2 = string[7:12] ## Символы с индекса 7 до 11
substring3 = string[-1]   ## Последний символ

print(substring1)
print(substring2)
print(substring3)

Теперь запустите скрипт еще раз:

python ~/project/substrings.py

Теперь вывод должен включать последний символ строки:

Hello
LabEx
!

Понимание того, как определять подстроки с использованием срезов (slicing), является фундаментальным навыком в Python. Опробуйте разные начальные и конечные индексы, чтобы извлекать различные части строки.

Использование оператора in

На этом этапе вы научитесь использовать оператор in в Python для проверки наличия подстроки в строке. Оператор in представляет собой простой и эффективный способ определить, присутствует ли подстрока в строке.

Продолжим работу с файлом substrings.py, который вы создали на предыдущем этапе. Мы добавим код для проверки наличия определенных подстрок в исходной строке.

Откройте файл substrings.py в каталоге ~/project с помощью редактора VS Code.

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = "Hello"
substring2 = "Python"

print(substring1 in string)
print(substring2 in string)

В этом примере мы определяем две подстроки, substring1 и substring2. Затем мы используем оператор in для проверки, присутствует ли каждая из подстрок в переменной string. Оператор in возвращает True, если подстрока найдена, и False в противном случае.

Чтобы запустить скрипт, откройте терминал в VS Code и выполните следующую команду:

python ~/project/substrings.py

Вы должны увидеть следующий вывод:

True
False

Этот вывод показывает, что "Hello" присутствует в строке "Hello, LabEx!", в то время как "Python" - нет.

Вы также можете использовать оператор in в условных операторах. Измените файл substrings.py, добавив следующее:

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = "Hello"
substring2 = "Python"

if substring1 in string:
    print(f"'{substring1}' is found in '{string}'")
else:
    print(f"'{substring1}' is not found in '{string}'")

if substring2 in string:
    print(f"'{substring2}' is found in '{string}'")
else:
    print(f"'{substring2}' is not found in '{string}'")

Теперь запустите скрипт еще раз:

python ~/project/substrings.py

Теперь вывод должен быть более информативным:

'Hello' is found in 'Hello, LabEx!'
'Python' is not found in 'Hello, LabEx!'

Оператор in является мощным инструментом для манипуляции строками в Python. Он позволяет легко проверять наличие подстрок в строке, делая ваш код более читаемым и эффективным.

Поиск позиции с помощью метода find()

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

Продолжим работу с файлом substrings.py, который вы создали на предыдущих этапах. Мы добавим код для нахождения позиции конкретных подстрок в исходной строке.

Откройте файл substrings.py в каталоге ~/project с помощью редактора VS Code.

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = "LabEx"
substring2 = "Python"

position1 = string.find(substring1)
position2 = string.find(substring2)

print(position1)
print(position2)

В этом примере мы определяем две подстроки, substring1 и substring2. Затем мы используем метод find() для нахождения позиции каждой подстроки в переменной string.

Чтобы запустить скрипт, откройте терминал в VS Code и выполните следующую команду:

python ~/project/substrings.py

Вы должны увидеть следующий вывод:

7
-1

Этот вывод показывает, что "LabEx" найдена по индексу 7 в строке "Hello, LabEx!", в то время как "Python" не найдена (обозначено -1).

Вы также можете использовать метод find() с необязательными начальными и конечными индексами для поиска подстроки в определенном диапазоне. Измените файл substrings.py, добавив следующее:

## ~/project/substrings.py
string = "Hello, LabEx! LabEx"

substring1 = "LabEx"

position1 = string.find(substring1)         ## Найти первое вхождение
position2 = string.find(substring1, 8)      ## Найти вхождение, начиная с индекса 8
position3 = string.find(substring1, 0, 5)   ## Найти вхождение в первых 5 символах

print(position1)
print(position2)
print(position3)

Теперь запустите скрипт еще раз:

python ~/project/substrings.py

Теперь вывод должен быть следующим:

7
14
-1

В этом примере:

  • position1 находит первое вхождение "LabEx" по индексу 7.
  • position2 начинает поиск с индекса 8, поэтому он находит второе вхождение "LabEx" по индексу 14.
  • position3 ищет в первых 5 символах строки, поэтому он не находит "LabEx" и возвращает -1.

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

Резюме

В этом практическом занятии вы научились определять подстроки в Python с использованием срезов строк. Вы создали скрипт на Python для инициализации строки и затем извлекли подстроки, указав начальные и конечные индексы, включая использование отрицательных индексов для доступа к символам с конца строки. В рамках практики показано, как выводить эти извлеченные подстроки в консоль.

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