python startswith


В Python startswith и endswith позволяют определить начинается ли строка и заканчивается ли она искомой последовательностью символов.



Методы startswith и endswith в python


Потребуется интерпретатор python3

python3



Зададим произвольную переменную с любым текстовым содержимым

text = "Some not very long string"



Данные методы можно использовать только с объектами типа 'строка'.

>> print (type(text))

<class 'str'>



startswith проверяет вхождение с начала — любая последовательность с пробелами

>>> text.startswith("S")

True



В результате всегда получается булево значение: True или False

> text.startswith("Some")

True


>> text.startswith("Some not")

True


> text.startswith("Some azaza")

False



Регист имеет значение

> text.startswith("s")

False


> text.endswith("ing")

True



Таким же образом работает другой метод — endswith, он проверяет чем оканчивается строка и выдает True или False

>>> text.endswith(" string")

True


>> text.endswith("not this time")

False



Операция извлечения среза как альтернатива


Из любой строки можно выбрать указанное количество символов по индексу, в том числе с начала или с конца. Извлекая срез строки можно добиваться, того же результата, что дает startswith и endswith.



Однако, на практике применять этот подход менее удобно поскольку выражение получается не таким наглядным наглядными

> text[:len("Some not very long string")] == "Some not very long string"

True


>>> text[:len("Some not very long string")] == "Some not very long"

False



Извлечение среза создает новый объект, это более ресурсозатратная операция и при больших объемах данных производительность будет снижаться.



Специальные методы startswith и endswith использовать в большинстве случаев лучше, чем добиваться того, что они делают через извлечение среза.


Читайте про метод replace в Python.

Сказать спасибо