Pythonで文字列が予約語でかどうかを調べる方法?

🐍Pythonで変数名をtrueにしたらエラーになってもうた!!

🐶それはなtrueがPythonの予約語やからや

予約語の定義

プログラミングで、予約語はインタプリタに特別な意味を伝えるため予約されたキーワードのことを指します。コマンドまたはパラメーターのどちらでも構いません。

プログラムで予約語を変数名として使用することはできません。

🐶ヘビさんがやったミスはこれや

Pythonの予約語

Pythonは特別な意味を伝える予約語がいくつかあります。

Python予約語List

  • False
  • elif
  • lambda
  • None
  • else
  • nonlocal
  • True
  • except
  • not
  • and
  • finally
  • or
  • as
  • for
  • pass
  • assert
  • from
  • raise
  • break
  • global
  • return
  • class
  • if
  • try
  • continue
  • import
  • while
  • def
  • in
  • with
  • del
  • is
  • yield

🐍Python予約語多過ぎや。こんなん覚えられへん。

🐶そういうときのために予約語かどうかを調べる関数がPythonにはあるねん。

文字列が予約語でかどうかを調べる方法

Pythonは、予約語に関連する特定の操作を処理する組み込みのモジュールkeywordがあります。関数iskeyword()は、文字列が予約語かどうかをチェックします。文字列が予約語であればtrueを返し、そうでなければfalseを返します。

🐶Pythonコードの例を示すで

import keyword

# initializing strings for testing
s = "for"
s1 = "coderecipe"
s2 = "elif"
s3 = "elseif"
s4 = "nikhil"
s5 = "assert"
s6 = "shambhavi"
s7 = "True"
s8 = "False"
s9 = "akshat"
s10 = "akash"
s11 = "break"
s12 = "ashty"
s13 = "lambda"
s14 = "suman"
s15 = "try"
s16 = "vaishnavi"

# checking which are keywords
if keyword.iskeyword(s):
        print ( s + " is a python keyword")
else :  print ( s + " is not a python keyword")

if keyword.iskeyword(s1):
        print ( s1 + " is a python keyword")
else :  print ( s1 + " is not a python keyword")

if keyword.iskeyword(s2):
        print ( s2 + " is a python keyword")
else :  print ( s2 + " is not a python keyword")

if keyword.iskeyword(s3):
        print ( s3 + " is a python keyword")
else :  print ( s3 + " is not a python keyword")

if keyword.iskeyword(s4):
        print ( s4 + " is a python keyword")
else :  print ( s4 + " is not a python keyword")

if keyword.iskeyword(s5):
        print ( s5 + " is a python keyword")
else :  print ( s5 + " is not a python keyword")

if keyword.iskeyword(s6):
        print ( s6 + " is a python keyword")
else :  print ( s6 + " is not a python keyword")

if keyword.iskeyword(s7):
        print ( s7 + " is a python keyword")
else :  print ( s7 + " is not a python keyword")

if keyword.iskeyword(s8):
        print ( s8 + " is a python keyword")
else :  print ( s8 + " is not a python keyword")

if keyword.iskeyword(s9):
        print ( s9 + " is a python keyword")
else :  print ( s9 + " is not a python keyword")

if keyword.iskeyword(s10):
        print ( s10 + " is a python keyword")
else :  print ( s10 + " is not a python keyword")

if keyword.iskeyword(s11):
        print ( s11 + " is a python keyword")
else :  print ( s11 + " is not a python keyword")

if keyword.iskeyword(s12):
        print ( s12 + " is a python keyword")
else :  print ( s12 + " is not a python keyword")

if keyword.iskeyword(s13):
        print ( s13 + " is a python keyword")
else :  print ( s13 + " is not a python keyword")

if keyword.iskeyword(s14):
        print ( s14 + " is a python keyword")
else :  print ( s14 + " is not a python keyword")

if keyword.iskeyword(s15):
        print ( s15 + " is a python keyword")
else :  print ( s15 + " is not a python keyword")

if keyword.iskeyword(s16):
        print ( s16 + " is a python keyword")
else :  print ( s16 + " is not a python keyword")

🐶動画で動作確認してみよか?

動画で確認

🐍iskeyword()便利そうやけどいちいち確認するのも面倒やな

🐶一気に予約語かどうかわかるやつあるで

すべてのキーワードのListを表示する方法

変数名を割り当てる際に、すべてのキーワードを覚えておくのが難しい場合があります。そのため、33個のpythonキーワードすべてを表示するkeywordモジュールに、kwlist()関数が用意されています。

🐶Pythonコードの例を示すで

import keyword

print ("The list of keywords is : ")
print (keyword.kwlist)

🐶動画で動作確認してみよか?

動画で確認

🐍kwlist()関数便利やな。

🐶ターミナルでササッとListで表示できるのでさっと予約語見るとき便利やで

Last Updated: 5/19/2019, 1:46:25 AM