HOWTO · Python
NameError: Python の名前が定義されていません
この説明で、NameError とは何か、およびその修正方法について学習します。
このページの内容
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)
このコードでは、name と fave_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 を呼び出して起動する必要はありません。