一般的な Python エラーの特定と理解
このステップでは、Python コードを作成する際によく遭遇するエラーについて、エラーメッセージの特定と理解方法を学びます。エラーに遭遇することはプログラミングにおいて正常なことであり、エラーメッセージを読み解くスキルは非常に重要です。
Python がどのように応答するかを見るために、意図的にコードにいくつかエラーを導入します。最初のステップで作成した hello.py ファイルを変更することから始めましょう。
VS Code エディターで hello.py ファイルを開きます。
まず、print() 関数にスペルミスを導入します。行を次のように変更します。
prunt("Hello, LabEx!")
ファイルを保存します(Ctrl + S)。
次に、変更した hello.py ファイルをターミナルから実行します。
python hello.py
次のようなエラーメッセージが表示されるはずです。
Traceback (most recent call last):
File "/home/labex/project/hello.py", line 1, in <module>
prunt("Hello, LabEx!")
NameError: name 'prunt' is not defined
これは NameError です。Python が prunt という名前を認識していないことを示しています。これは、正しい関数名が print であるためです。エラーメッセージは、ファイル名(hello.py)、行番号(1 行目)、およびエラーを引き起こした具体的なコードも示しています。
次に、print のスペルを修正し、閉じ引用符を欠落させます。行を print に戻しますが、閉じ二重引用符を削除します。
print("Hello, LabEx!)
ファイルを保存して、再度実行します。
python hello.py
次のような異なるエラーメッセージが表示されるはずです。おそらく SyntaxError でしょう。
File "/home/labex/project/hello.py", line 1
print("Hello, LabEx!)
^
SyntaxError: unterminated string literal (missing '"')
この SyntaxError は、コードの構造に問題があることを示しています。「unterminated string literal (missing '"')」というメッセージは、文字列が二重引用符で始まっているのに、閉じ引用符で終わっていないことを明確に伝えています。
最後に、引用符を修正し、括弧に非英語文字を導入します。行を次のように変更します。
print("Hello, LabEx!")
ここで使用されている括弧は、Python で必要とされる半角の英語文字ではなく、全角の中国語文字であることに注意してください。
ファイルを保存して実行します。
python hello.py
無効な文字に関する SyntaxError が表示される可能性が高いです。
File "/home/labex/project/hello.py", line 1
print("Hello, LabEx!")
^
SyntaxError: invalid character '(' (U+FF08)
このエラーメッセージは、無効な文字とその Unicode 表現を示しています。Python は、括弧のような構文要素には、標準的な英語の半角文字を期待します。
これらのエラーを意図的に作成し、エラーメッセージを観察することで、さまざまな種類のエラーが何を意味するのか、そしてコード内の問題のソースをどのように特定できるのかを理解し始めることができます。次のステップでは、これらのエラーをデバッグする方法を学びます。