Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python入門】文字列が有効なキーワード(予約語)かどうかを確認する方法

Pythonには、他の多くのプログラミング言語と同様に、予約語(キーワード)が存在します。これらの単語は言語仕様の中で特別な意味を持っており、制御構文や定義文などで使われます。そのため、変数名や関数名として利用することはできません。

本記事では、ある文字列がPythonの有効なキーワードであるかどうかを判定する方法を解説します。

keywordモジュールをインポートする

文字列がキーワードかどうかを調べるには、Pythonの標準ライブラリである keyword モジュールを使用します。まずは以下のようにインポートしましょう。

import keyword

iskeyword()関数で判定する

keywordモジュールには、iskeyword() 関数が用意されています。この関数に文字列を渡すことで、それが有効なキーワードであれば True、そうでなければ False を返します。

次の例では、複数の単語を含むリストを用意し、それぞれがキーワードかどうかを判定して、キーワードと非キーワードに振り分けています。

サンプルコード

import keyword

str_list = ['for', 'TP', 'python', 'del', 'Mango', 'assert', 'yield',
            'if', 'Lion', 'as', 'Snake', 'box', 'return', 'try',
            'loop', 'eye', 'global', 'while', 'update', 'is']

keyword_list = []
non_keyword_list = []

for item in str_list:
    if keyword.iskeyword(item):
        keyword_list.append(item)
    else:
        non_keyword_list.append(item)

print("Keywords: " + str(keyword_list))
print("\nNon Keywords: " + str(non_keyword_list))

実行結果

Keywords: ['for', 'del', 'assert', 'yield', 'if', 'as', 'return', 'try', 'global', 'while', 'is']

Non Keywords: ['TP', 'python', 'Mango', 'Lion', 'Snake', 'box', 'loop', 'eye', 'update']

実行結果を見ると、「for」や「del」などの予約語はキーワードとして分類され、「python」や「Mango」といった一般名詞・識別子は非キーワードとして振り分けられていることがわかります。

すべてのキーワード一覧を取得する(kwlist)

keywordモジュールには、Pythonで使えるすべてのキーワードをリスト形式で取得できる kwlist も用意されています。

サンプルコード

import keyword

print("All Keywords:")
print(keyword.kwlist)

実行結果

All Keywords: ['False', 'None', 'True', 'and', 'as', 'assert', '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']

補足: kwlist の内容は使用しているPythonのバージョンによって異なる場合があります。また、Python 3.9以降では「match」「case」のようなソフトキーワード(文脈依存のキーワード)も導入されています。これらを含めて確認したい場合は、keyword.softkwlist を併用すると便利です。

  1. 指定された文字列がキーワードであるかどうかを確認するPythonプログラム

    この記事では、指定された文字列がPythonのキーワード(予約語)であるかどうかを判定する方法について解説します。問題の概要与えられた文字列が、Pythonにおけるキーワードであるかどうかを確認する必要があります。キーワードとは、言語によって特別な用途のために予約されている単語であり、変数名や関数名などの識別子として使用することはできません。例えば「if」「for」「while」「def」などはすべてキーワードです。これらの名前を変数に使おうとすると、構文エラーが発生します。解決策:keywordモジュールの活用Pythonには標準ライブラリとしてkeywordモジュールが用意されており、これ

  2. Pythonで文字列が英数字のみかどうかを判定する方法【isalnum()と正規表現】

    Pythonでは、文字列が英数字(アルファベットと数字)のみで構成されているかどうかを簡単に判定できます。主な方法は2つあります。文字列クラスに組み込まれている isalnum() メソッドを使う方法と、正規表現を使う方法です。 isalnum()メソッドを使う方法 Pythonの文字列クラスには isalnum() というメソッドが用意されています。このメソッドを文字列に対して呼び出すと、文字列が英数字のみで構成されている場合に True を、記号などが含まれる場合には False を返します。 >>> 123abc.isalnum() True >>>