NameError: Python の名前が定義されていません

Salman Mehmood 2023年10月10日
NameError: Python の名前が定義されていません

NameError とは何か、そしてそれを修正する方法を学びます。 また、Python のターミナルではなくインタープリター内で Python を呼び出すときに、NameError: name 'python' is not defined を修正する方法も学びます。

Python の NameError: name 'python' is not defined を修正

コードに変数を記述したため、Python で NameError が発生することがありますが、その変数が何であるかを Python に伝えていません。

これで、エラーを発生させる方法を示す Python スクリプトが作成されました。

name = "Bob"

fave_animal = "dog"

print("Hi", name, "Your favorite animal is a", fave_animal)
print("Your favorite film is", film)

このコードでは、namefave_animal を定義していますが、film を定義していないため、これを実行すると、name 'film' is not defined エラーが発生します。 これは、Python が 'film' が何であるかを知らないことを意味します。

NameError: name 'film' is not defined

film を定義することでこれを修正でき、このスクリプトを実行することで修正できます。

film = "John Wick"
print("Your favorite film is", film)

出力:

Your favorite film is John Wick

エラーが発生するもう 1つの理由は、意図せずに変数 films のように間違って記述した場合です。これを実行すると、同じエラーが発生します。

film = "John Wick"
print("Your favorite film is", films)

出力:

NameError: name 'films' is not defined

エラーを取得する別の方法は、どこかに文字列を定義したときに、引用符の中に単語を入れるのを忘れたと仮定することです。 私たちの場合、Python スクリプトでばかげた間違いをしており、このコードを実行すると同じエラーが発生します。

python

出力:

NameError: name 'Your' is not defined

ほとんどの初心者はこの種の間違いを犯し、解決策を見つけるのが難しい場合があります。

初心者がこのばかげた間違いを犯すもう 1つのことは、Python インタープリター内で python を呼び出そうとすることです。インタープリター内でこのコマンドを実行すると、説明したのと同じエラーが発生します。

C:\Users\Dell>python
Python 3.9.1 (tags/v3.9.1:1e5d33e, Dec  7 2020, 17:08:21) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> python
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'python' is not defined

CMD を実行して python と入力すると、Python インタープリターが起動しますが、再度入力すると python を変数名として解釈しようとし、その名前が定義されていないため、エラーが発生します。

CMD では、Python を起動するために再度呼び出す必要はありません。 Python インタープリターは既に起動しているので、python を呼び出して起動する必要はありません。

著者: Salman Mehmood
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

関連記事 - Python Error