# Python String endswith: Проверка того, заканчивается ли строка подстрокой

Метод endswith в Python используется для проверки, заканчивается ли строка определенной подстрокой. В этом руководстве **вы узнаете, как использовать метод endswith в Python, чтобы определить, заканчивается ли строка одной или несколькими подстроками**. Возможность проверить, заканчивается ли строка другой строкой, позволяет, например, проверить расширение файла или тип домена электронной почты. В качестве альтернативы, вы можете использовать метод startswith, чтобы проверить, начинается ли строка с подстроки

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

* Как использовать функцию endwith() Python, чтобы проверить, заканчивается ли строка подстрокой
* Как использовать функцию`endswith()` функция с множеством строк
* Как использовать функцию`endswith()`функция без учета регистра
* Как использовать функцию `endswith()`функция с списком строк

Содержание

* [Понимание Python заканчивается функцией](#ponimanie-python-zakanchivaetsya-funkciei)
* [Использование Python Endswith для проверки, заканчивается ли строка подстрокой](#ispolzovanie-python-endswith-dlya-proverki-zakanchivaetsya-li-stroka-podstrokoi)
* [Использование Python Endswith для проверки того, начинается ли строка с нескольких подстрок](#ispolzovanie-python-endswith-dlya-proverki-togo-nachinaetsya-li-stroka-s-neskolkikh-podstrok)
* [Использование Python Endswith для проверки того, заканчивается ли строка подстрокой, нечувствительной к регистру](#ispolzovanie-python-endswith-dlya-proverki-togo-zakanchivaetsya-li-stroka-podstrokoi-nechuvstvitelno)
* [Использование Python Endswith для проверки, не заканчивается ли строка подстрокой](#ispolzovanie-python-endswith-dlya-proverki-ne-zakanchivaetsya-li-stroka-podstrokoi)
* [Заключение](#zaklyuchenie)
* [Дополнительные ресурсы](#dopolnitelnye-resursy)

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

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

```python
# Understanding the Python endswith() Function
str.endswith(prefix, start, end)
```

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

| Параметр  | Описание                                             | Аргумент по умолчанию | Принятые значения          |
| --------- | ---------------------------------------------------- | --------------------- | -------------------------- |
| `prefix=` | Суффикс для проверки, заканчиваются ли данные строки | N/A                   | string or tuple of strings |
| `start=`  | Начальная позиция для проверки                       | `None`                | integer                    |
| `end=`    | Прекратите сравнивать строки в этой позиции          | `None`                | integer                    |

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

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

Метод Python `endswith()` проверяет, заканчивается ли строка указанной подстрокой. Метод возвращает булево значение: True, если строка заканчивается указанной подстрокой, и False в противном случае. **Метод чувствителен к регистру – будьте внимательны к написанию букв при проверке.**

Давайте рассмотрим пример, где мы пытаемся определить, имеет ли файл определённое расширение.

```python
# Using Python startswith() to Check if a String Starts with a Substring
text = 'datagy.xlsx'

print('text ends with "X": ', text.endswith('X'))
print('text ends with "x": ', text.endswith('x'))

# Returns:
# text ends with "X":  False
# text ends with "x":  True
```

Из примера выше можно увидеть, что при проверке, начинается ли строка с `'X'` и `'x'`, первая возвращает True, а вторая возвращает False.

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

```python
# Modifying the Start Position of the startswith() Function
text = 'datagy.xlsx'
print(text.endswith('xlsx', -4))

# Returns: True
```

Можно заметить, что метод Python `.endswith()` поддерживает использование отрицательного индекса для начала отсчета. В этом примере мы использовали позицию `-4`, так как знали, что нужно проверить расширение из четырех символов.

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

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

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

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

```python
# Checking if a String Ends With Multiple Different Substrings
text = 'datagy.xlsx'
print(text.endswith(('xls', 'xlsx')))

# Returns: True
```

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

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

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

В связи с этим, у нас есть два варианта использования метода `.endswith()` с поддержкой нечувствительности к регистру:

1. Передача всех параметров чувствительности к регистру
2. преобразование строки в нижний регистр

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

```python
# Checking if a String Ends With Substring Using Case Insensitivity
text = 'datagy.xlsx'
print(text.endswith(('X', 'x')))

# Returns: True
```

В блоке кода выше мы проверили, оканчивается ли строка на строчную или заглавную букву `'x'`, передавая кортеж из двух букв. Этот метод работает, когда количество [вариантов сочетаний](https://datagy.io/python-combinations-of-a-list/) невелико, но в противном случае это было бы утомительно.

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

```python
# Checking if a String Starts With Substring Using Case Insensitivity
text = 'datagy.xlsx'
print(text.lower().endswith(('x')))

# Returns: True
```

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

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

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

```python
# Check if a String Doesn't End with a Substring
text = 'datagy.csv'
print(not text.endswith(('csv')))

# Returns: False
```

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

### Заключение

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

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

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

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

* Строка Python содержит: проверьте, содержит ли строка подстроку
* Python rfind: найти индекс последней подстроки в строке
* Python: найти индекс (или все) подстроки в строке
* [Python заканчивается: Официальная документация](https://docs.python.org/3/library/stdtypes.html#str.endswith)
