如何检查字符串是否为 Python 中的有效标识符

PythonPythonBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何检查一个字符串是否为 Python 中的有效标识符。了解标识符命名规则对于编写简洁且无错误的代码至关重要。

本实验涵盖了 Python 标识符的规则,包括以字母或下划线开头、包含字母、数字和下划线、区分大小写以及不能是保留关键字。你将在 Python 脚本中练习使用有效标识符创建变量,并学习使用 str.isidentifier()keyword 模块来验证标识符。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) 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 标识符区分大小写,这意味着 myVariablemyvariable 被视为不同的标识符。
  4. 不能是保留关键字:标识符不能是 Python 的任何保留关键字(例如,ifelseforwhiledefclassimportreturnTrueFalseNone)。

让我们来看一些有效和无效标识符的示例:

有效标识符:

  • my_variable
  • _my_variable
  • myVariable
  • MY_VARIABLE
  • variable123

无效标识符:

  • 123variable(以数字开头)
  • my-variable(包含连字符)
  • my Variable(包含空格)
  • if(保留关键字)

现在,让我们在 Python 脚本中练习使用有效标识符创建一些变量。

  1. 在 LabEx 环境中打开 VS Code 编辑器。

  2. ~/project 目录下创建一个名为 identifiers.py 的新文件。

    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()

在这一步中,你将学习如何使用 Python 中的 str.isidentifier() 方法来检查一个字符串是否为有效的标识符。这个方法是一种通过编程方式验证标识符名称的便捷方式。

如果字符串根据 Python 语言定义是有效的标识符,str.isidentifier() 方法将返回 True,否则返回 False

让我们创建一个 Python 脚本来测试不同的字符串,看看它们是否为有效的标识符。

  1. 在 LabEx 环境中打开 VS Code 编辑器。

  2. ~/project 目录下创建一个名为 check_identifier.py 的新文件。

    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 模块进行检查

在这一步中,你将学习如何使用 Python 中的 keyword 模块来检查一个字符串是否为 Python 关键字。关键字是 Python 中具有特殊含义的保留字,不能用作标识符。

keyword 模块提供了一个名为 iskeyword() 的函数,用于检查给定的字符串是否为 Python 关键字。

让我们创建一个 Python 脚本来测试不同的字符串,看看它们是否为关键字。

  1. 在 LabEx 环境中打开 VS Code 编辑器。

  2. ~/project 目录下创建一个名为 check_keyword.py 的新文件。

    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 关键字。脚本还使用 keyword.kwlist 打印出所有 Python 关键字的列表。

  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 文件,为有效的标识符赋值,并将这些值打印到控制台。