Python String startswith: Проверка, начинается ли строка с подстроки

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

К концу этого урока вы узнаете:

  • Как использовать функцию Python startswith(), чтобы проверить, начинается ли строка с подстроки

  • Как использовать функцию Python startswith() функция с несколькими строками

  • Как использовать функцию Python startswith() функция без учета регистра.

  • Как использовать функцию Python startswith() функция с списком строк

Оглавление

Понимание Python начинается с функции

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

# Understanding the Python startswith() Function
str.startswith(prefix, start, end)

Таблица ниже разбивает параметры функции, а также любые значения по умолчанию, которые предоставляет функция:

Параметр
Описание
Аргумент по умолчанию
Принятые значения

prefix=

Префикс для проверки начала строки

N/A

string or tuple of strings

start=

Начальное положение для проверки в

None

integer

end=

Прекратите сравнивать строки в этой позиции

None

integer

Теперь, когда у вас есть хорошее понимание функции, давайте начнем исследовать, как вы можете ее использовать.

Использование Python начинается с проверки, начинается ли строка с подстроки

Функция startswith() в Python проверяет, начинается ли строка с подстроки и возвращает логическое значение. Функция вернёт True, если строка начинается с предоставленных подстрок, и False в противном случае. Важно отметить, что функция чувствительна к регистру, поэтому использование строчных или заглавных букв требует внимательного подхода.

Давайте рассмотрим пример:

# Using Python startswith() to Check if a String Starts with a Substring
text = 'Welcome to datagy.io'

print('text starts with "W": ', text.startswith('W'))
print('text starts with "w": ', text.startswith('w'))

# Returns:
# text starts with "W":  True
# text starts with "w":  False

Из примера выше мы видим, что, когда проверяем, начинается ли строка с 'W' и 'w', первое возвращает True, а второе — False.

Аналогично, мы можем использовать параметр start=, чтобы изменить начальную позицию проверки. Так как строки в Python индексируются с 0, мы можем использовать эти позиции индексов. Давайте начнем проверку, начинается ли вторая буква строки с символа 'e':

# Modifying the Start Position of the startswith() Function
text = 'Welcome to datagy.io'
print(text.startswith('e', 1))

# Returns: True

Использование этого эквивалентно срезу строки до указанной начальной позиции. В приведенном выше примере это можно переписать как text[1:].startswith('e'). Однако использование параметра start= намного проще для чтения.

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

Использование Python начинается с проверки того, начинается ли строка с нескольких подстрок

Бывают моменты, когда нужно проверить, начинается ли строка с любого из набора подстрок. Это значит, что если вы ищете, скажем, определенный шаблон, вы можете проверить несколько вариантов.

Чтобы сделать это, вы можете просто передать кортеж строк в метод .startswith(). Это проверит, начинается ли строка с какого-либо из вариантов. Давайте посмотрим, как это выглядит на Python:

# Checking if a String Starts With Multiple Different Substrings
text = 'Welcome to datagy.io'
print(text.startswith(('W', 'w')))

# Returns: True

В блоке кода выше мы передали кортеж, содержащий строчные и прописные буквы "w", в метод. Это позволяет проверить, начинается ли строка с одной из этих букв. В данном случае метод вернул true, указывая на то, что строка действительно начинается с одной из этих букв.

Использование Python начинается с проверки того, начинается ли строка с подстроки, нечувствительной к регистру

В этом разделе вы узнаете, как использовать метод Python .startswith() для проверки, начинается ли строка с подстроки без учета регистра. По умолчанию метод чувствителен к регистру, и нет параметра для изменения этого поведения.

Из-за этого у нас есть два варианта использования метода .startswith() с учетом регистра:

  1. Пройти через все варианты чувствительности к регистру

  2. Преобразование строки в строчные буквы

Давайте рассмотрим первый вариант:

# Checking if a String Starts With Substring Using Case Insensitivity
text = 'Welcome to datagy.io'
print(text.startswith(('W', 'w')))

# Returns: True

В приведенном выше блоке кода мы проверили, начинается ли строка с строчной или прописной буквы 'w', передав кортеж из двух букв. Этот метод работает, когда есть меньше вариантов комбинаций, но в противном случае он был бы исчерпывающим.

Или, мы можем представить строку в нижнем регистре и проверить наличие подстроки в нижнем регистре. Давайте посмотрим, как это выглядит:

# Checking if a String Starts With Substring Using Case Insensitivity
text = 'Welcome to datagy.io'
print(text.lower().startswith(('w')))

# Returns: True

В коде выше мы сначала используем метод .lower(), чтобы представить строку в нижнем регистре. Затем мы можем использовать метод .startswith(), чтобы проверить, начинается ли строка с заданного шаблона без учета регистра.

Использование Python начинается с проверки, начинается ли список строк с подстроки

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

# Checking a List of Strings to Check if Strings Start With Substring
texts = ['welcome', 'to', 'datagy']
starts = [True if text.startswith('w') else False for text in texts]

print(starts)

# Returns: [True, False, False]

В приведенном выше блоке кода мы используем генератор списков, который проходит по списку строк. Генератор возвращает True, если строка начинается с указанной подстроки, и False в противном случае.

Если вы хотите проверить, начинается ли какая-либо из строк с подстроки, вы можете передать это генераторное выражение в функцию Python any(). Функция возвращает True, если любой из элементов в переданном массиве истинный. Давайте посмотрим, как это выглядит:

# Checking a List of Strings to Check if Strings Start With Substring
texts = ['welcome', 'to', 'datagy']
starts = any([True if text.startswith('w') else False for text in texts])

print(starts)

# Returns: True

Использование Python начинается с проверки, не начинается ли строка с подстроки

В этом последнем разделе вы узнаете, как использовать метод Python startswith(), чтобы проверить, не начинается ли строка с определенной подстроки. Это может быть особенно полезно, когда вы хотите убедиться, что строка не начинается с чего-то конкретного. Например, вы можете проверить, не принадлежит ли номер телефона к определенному коду региона.

# Check if a String Doesn't Start with a Substring
text = 'Welcome to datagy.io'
print(not text.startswith(('W')))

# Returns: False

В приведенном выше коде перед вызовом метода .startswith() используется оператор not. Это возвращает противоположное логическое значение того, что возвращает метод. В приведённом примере мы проверяем, начинается ли строка с 'W' (что так и есть). Однако, поскольку мы применяем not, программа возвращает False.

Заключение

В этом посте вы узнали, как использовать метод Python .startswith() для проверки, начинается ли строка с определенной подстроки. Сначала вы узнали, как работает метод, изучив его параметры и аргументы по умолчанию. Затем вы узнали, как использовать метод для проверки, начинается ли строка с определенной подстроки, а также с нескольких различных подстрок.

Затем вы узнали, как проверять строки, начинающиеся с подстроки, с учётом регистра. В завершение вы проверили, начинаются ли строки в списке с данной подстроки и начинается ли строка с другой подстроки.

Дополнительные ресурсы

Чтобы узнать больше о смежных темах, ознакомьтесь с приведёнными ниже уроками:

Last updated