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

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

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

Введение

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") python/BasicConceptsGroup -.-> python/strings("Strings") python/FunctionsGroup -.-> python/scope("Scope") python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") subgraph Lab Skills python/variables_data_types -.-> lab-559575{{"Как проверить, является ли строка допустимым идентификатором в Python"}} python/strings -.-> lab-559575{{"Как проверить, является ли строка допустимым идентификатором в Python"}} python/scope -.-> lab-559575{{"Как проверить, является ли строка допустимым идентификатором в Python"}} python/using_packages -.-> lab-559575{{"Как проверить, является ли строка допустимым идентификатором в Python"}} python/standard_libraries -.-> lab-559575{{"Как проверить, является ли строка допустимым идентификатором в Python"}} end

Изучение идентификаторов в Python

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

Правила именования идентификаторов в Python:

  1. Начало с буквы или подчеркивания: Идентификатор должен начинаться с буквы (от A до Z или от a до z) или подчеркивания (_).
  2. Может содержать буквы, цифры и подчеркивания: После первого символа идентификатор может содержать буквы, цифры (от 0 до 9) и подчеркивания.
  3. Регистр имеет значение: Идентификаторы в Python чувствительны к регистру, то есть myVariable и myvariable рассматриваются как разные идентификаторы.
  4. Не могут быть зарезервированными ключевыми словами: Идентификаторы не могут быть зарезервированными ключевыми словами Python (например, if, else, for, while, def, class, import, return, True, False, None).

Рассмотрим примеры допустимых и недопустимых идентификаторов:

Допустимые идентификаторы:

  • my_variable
  • _my_variable
  • myVariable
  • MY_VARIABLE
  • variable123

Недопустимые идентификаторы:

  • 123variable (начинается с цифры)
  • my-variable (содержит дефис)
  • my Variable (содержит пробел)
  • if (зарезервированное ключевое слово)

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

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

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

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

    ## Valid identifiers
    my_variable = 10
    _my_variable = 20
    myVariable = 30
    MY_VARIABLE = 40
    variable123 = 50
    
    ## Printing the values
    print(my_variable)
    print(_my_variable)
    print(myVariable)
    print(MY_VARIABLE)
    print(variable123)
  4. Сохраните файл.

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

    python identifiers.py

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

    10
    20
    30
    40
    50

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

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

На этом этапе вы узнаете, как использовать метод str.isidentifier() в Python для проверки, является ли строка допустимым идентификатором. Этот метод представляет собой удобный способ программной валидации имен идентификаторов.

Метод str.isidentifier() возвращает True, если строка является допустимым идентификатором согласно определению языка Python, и False в противном случае.

Создадим скрипт Python для проверки различных строк на предмет того, являются ли они допустимыми идентификаторами.

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

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

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

    ## Examples of strings to test
    valid_identifier = "my_variable"
    invalid_identifier_start_with_number = "123variable"
    invalid_identifier_with_space = "my variable"
    invalid_identifier_with_hyphen = "my-variable"
    keyword_identifier = "if"
    valid_identifier_with_underscore = "_my_variable"
    
    ## Using str.isidentifier() to check if the strings are valid identifiers
    print(f"'{valid_identifier}' is a valid identifier: {valid_identifier.isidentifier()}")
    print(f"'{invalid_identifier_start_with_number}' is a valid identifier: {invalid_identifier_start_with_number.isidentifier()}")
    print(f"'{invalid_identifier_with_space}' is a valid identifier: {invalid_identifier_with_space.isidentifier()}")
    print(f"'{invalid_identifier_with_hyphen}' is a valid identifier: {invalid_identifier_with_hyphen.isidentifier()}")
    print(f"'{keyword_identifier}' is a valid identifier: {keyword_identifier.isidentifier()}")
    print(f"'{valid_identifier_with_underscore}' is a valid identifier: {valid_identifier_with_underscore.isidentifier()}")

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

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

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

    python check_identifier.py

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

    'my_variable' is a valid identifier: True
    '123variable' is a valid identifier: False
    'my variable' is a valid identifier: False
    'my-variable' is a valid identifier: False
    'if' is a valid identifier: False
    '_my_variable' is a valid identifier: True

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

Проверка с использованием модуля keyword

На этом этапе вы узнаете, как использовать модуль keyword в Python для проверки, является ли строка ключевым словом Python. Ключевые слова - это зарезервированные слова, имеющие специальное значение в Python и не могут быть использованы как идентификаторы.

Модуль keyword предоставляет функцию iskeyword(), которая проверяет, является ли заданная строка ключевым словом Python.

Создадим скрипт Python для проверки различных строк на предмет того, являются ли они ключевыми словами.

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

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

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

    import keyword
    
    ## Examples of strings to test
    keyword_string = "if"
    not_keyword_string = "my_variable"
    
    ## Using keyword.iskeyword() to check if the strings are keywords
    print(f"'{keyword_string}' is a keyword: {keyword.iskeyword(keyword_string)}")
    print(f"'{not_keyword_string}' is a keyword: {keyword.iskeyword(not_keyword_string)}")
    
    ## Display all keywords
    print("Python keywords:")
    print(keyword.kwlist)

    Этот скрипт импортирует модуль keyword и использует функцию iskeyword() для проверки, являются ли строки "if" и "my_variable" ключевыми словами Python. Скрипт также выводит список всех ключевых слов Python с помощью keyword.kwlist.

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

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

    python check_keyword.py

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

    'if' is a keyword: True
    'my_variable' is a keyword: False
    Python keywords:
    ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

Этот вывод показывает, что функция keyword.iskeyword() правильно определяет "if" как ключевое слово и "my_variable" как не ключевое слово. Скрипт также выводит список всех ключевых слов Python.

Итог

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

Вы практиковались в создании переменных с допустимыми идентификаторами в скрипте Python, демонстрируя правильное применение этих правил. В рамках практического занятия вы создали файл identifiers.py, присвоили значения допустимым идентификаторам и вывели эти значения в консоль.