Как проверить, заканчивается ли строка определенным суффиксом в Python

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

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

Введение

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/strings -.-> lab-559571{{"Как проверить, заканчивается ли строка определенным суффиксом в Python"}} python/conditional_statements -.-> lab-559571{{"Как проверить, заканчивается ли строка определенным суффиксом в Python"}} python/data_collections -.-> lab-559571{{"Как проверить, заканчивается ли строка определенным суффиксом в Python"}} end

Изучение суффиксов строк

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

Начнем с создания простого скрипта на Python для иллюстрации суффиксов строк.

  1. Откройте редактор VS Code в среде LabEx.

  2. Создайте новый файл с именем suffix_example.py в директории ~/project.

    ~/project/suffix_example.py
  3. Добавьте следующий код Python в файл suffix_example.py:

    filename = "document.pdf"
    
    if filename.endswith(".pdf"):
        print("The file is a PDF document.")
    else:
        print("The file is not a PDF document.")

    Этот код проверяет, заканчивается ли строковая переменная filename суффиксом .pdf. Для этого используется метод endswith().

  4. Сохраните файл suffix_example.py.

  5. Запустите скрипт с помощью команды python в терминале:

    python suffix_example.py

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

    The file is a PDF document.

Теперь изменим скрипт для проверки другого суффикса.

  1. Откройте файл suffix_example.py в редакторе VS Code.

  2. Измените код для проверки суффикса .txt:

    filename = "document.txt"
    
    if filename.endswith(".txt"):
        print("The file is a text document.")
    else:
        print("The file is not a text document.")
  3. Сохраните файл suffix_example.py.

  4. Запустите скрипт снова:

    python suffix_example.py

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

    The file is a text document.

Это демонстрирует, как использовать метод endswith() для проверки наличия определенных суффиксов в строках. Это фундаментальная техника для многих задач программирования.

Использование метода endswith()

На этом этапе вы углубитесь в изучение метода endswith() и рассмотрите его различные применения. Метод endswith() - это мощный инструмент для проверки, заканчивается ли строка определенным суффиксом. Он возвращает True, если строка заканчивается указанным суффиксом, и False в противном случае.

Продолжим работу с файлом suffix_example.py из предыдущего шага. Мы изменим скрипт, чтобы сделать его более интерактивным.

  1. Откройте файл suffix_example.py в редакторе VS Code.

  2. Измените код, чтобы запросить у пользователя имя файла и проверить, заканчивается ли оно на .txt:

    filename = input("Enter a filename: ")
    
    if filename.endswith(".txt"):
        print("The file is a text document.")
    else:
        print("The file is not a text document.")

    Этот код использует функцию input() для получения имени файла от пользователя. Затем он использует метод endswith() для проверки, заканчивается ли имя файла на .txt.

  3. Сохраните файл suffix_example.py.

  4. Запустите скрипт:

    python suffix_example.py

    Скрипт попросит вас ввести имя файла.

    Enter a filename:
  5. Введите my_document.txt и нажмите Enter. Вы должны увидеть следующий вывод:

    The file is a text document.
  6. Запустите скрипт снова и введите my_document.pdf. Вы должны увидеть следующий вывод:

    The file is not a text document.

Теперь рассмотрим вопрос о регистрозависимости метода endswith().

  1. Откройте файл suffix_example.py в редакторе VS Code.

  2. Измените код, чтобы проверить наличие .TXT (заглавными буквами):

    filename = input("Enter a filename: ")
    
    if filename.endswith(".TXT"):
        print("The file is a text document (uppercase).")
    else:
        print("The file is not a text document (uppercase).")
  3. Сохраните файл suffix_example.py.

  4. Запустите скрипт:

    python suffix_example.py
  5. Введите my_document.txt и нажмите Enter. Вы должны увидеть следующий вывод:

    The file is not a text document (uppercase).

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

filename = input("Enter a filename: ")

if filename.lower().endswith(".txt"):
    print("The file is a text document (case-insensitive).")
else:
    print("The file is not a text document (case-insensitive).")

Этот измененный код правильно определит my_document.txt как текстовый документ, независимо от регистра суффикса.

Проверка на несколько суффиксов

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

Давайте изменим файл suffix_example.py для проверки на несколько суффиксов.

  1. Откройте файл suffix_example.py в редакторе VS Code.

  2. Измените код, чтобы проверить, заканчивается ли имя файла на .txt или .pdf:

    filename = input("Enter a filename: ")
    suffixes = (".txt", ".pdf")
    
    if filename.endswith(suffixes):
        print("The file is either a text document or a PDF document.")
    else:
        print("The file is neither a text document nor a PDF document.")

    В этом коде мы определяем кортеж (tuple) с именем suffixes, содержащий суффиксы, которые мы хотим проверить. Метод endswith() может принимать кортеж суффиксов в качестве аргумента.

  3. Сохраните файл suffix_example.py.

  4. Запустите скрипт:

    python suffix_example.py

    Скрипт попросит вас ввести имя файла.

    Enter a filename:
  5. Введите my_document.txt и нажмите Enter. Вы должны увидеть следующий вывод:

    The file is either a text document or a PDF document.
  6. Запустите скрипт снова и введите my_document.pdf. Вы должны увидеть следующий вывод:

    The file is either a text document or a PDF document.
  7. Запустите скрипт снова и введите my_document.docx. Вы должны увидеть следующий вывод:

    The file is neither a text document nor a PDF document.

Теперь добавим еще один суффикс в кортеж.

  1. Откройте файл suffix_example.py в редакторе VS Code.

  2. Измените код, чтобы проверить, заканчивается ли имя файла на .txt, .pdf или .docx:

    filename = input("Enter a filename: ")
    suffixes = (".txt", ".pdf", ".docx")
    
    if filename.endswith(suffixes):
        print("The file is either a text document, a PDF document, or a Word document.")
    else:
        print("The file is neither a text document, a PDF document, nor a Word document.")
  3. Сохраните файл suffix_example.py.

  4. Запустите скрипт:

    python suffix_example.py
  5. Введите my_document.docx и нажмите Enter. Вы должны увидеть следующий вывод:

    The file is either a text document, a PDF document, or a Word document.

Это демонстрирует, как использовать метод endswith() с кортежем суффиксов для проверки на несколько возможных типов файлов.

Резюме

В этом практическом занятии (lab) вы узнали о строковых суффиксах и их важности в программировании, особенно для таких задач, как идентификация типов файлов. Вы создали скрипт на Python, используя метод endswith(), чтобы проверить, заканчивается ли строка с именем файла определенными суффиксами, такими как ".pdf" и ".txt".

В рамках практического занятия показано, как изменить скрипт для проверки различных суффиксов и проверить вывод в каждом случае, что иллюстрирует фундаментальную технику использования метода endswith() для валидации строковых суффиксов.