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()
с учетом регистра:
Пройти через все варианты чувствительности к регистру
Преобразование строки в строчные буквы
Давайте рассмотрим первый вариант:
# 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()
для проверки, начинается ли строка с определенной подстроки. Сначала вы узнали, как работает метод, изучив его параметры и аргументы по умолчанию. Затем вы узнали, как использовать метод для проверки, начинается ли строка с определенной подстроки, а также с нескольких различных подстрок.
Затем вы узнали, как проверять строки, начинающиеся с подстроки, с учётом регистра. В завершение вы проверили, начинаются ли строки в списке с данной подстроки и начинается ли строка с другой подстроки.
Дополнительные ресурсы
Чтобы узнать больше о смежных темах, ознакомьтесь с приведёнными ниже уроками:
Строка Python содержит: проверьте, содержит ли строка подстроку
Python rfind: найти индекс последней подстроки в строке
Python: найти индекс (или все) подстроки в строке
Last updated