Python で文字列が有効な識別子かどうかをチェックする方法

PythonPythonBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、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 の識別子は大文字と小文字が区別されます。つまり、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() メソッドを使用して、文字列が有効な識別子であるかどうかをチェックする方法を学びます。このメソッドは、識別子名をプログラムで検証する便利な方法です。

str.isidentifier() メソッドは、文字列が Python 言語の定義に従った有効な識別子である場合に 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 モジュールには、与えられた文字列が Python のキーワードであるかどうかをチェックする iskeyword() 関数が用意されています。

様々な文字列をテストし、それらがキーワードであるかどうかを確認する 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 ファイルを作成し、有効な識別子に値を割り当て、それらの値をコンソールに出力する作業が含まれていました。