Python トレースバック 最新の呼び出し 最後

Rohan Timalsina 2023年6月21日
Python トレースバック 最新の呼び出し 最後

Python トレースバックは、コードで発生した例外に関する情報を報告します。 コード内のエラーの種類と追加情報を見つけるのに役立ちます。

トレースバックには、例外が発生した正確な行が表示されます。 一般的なトレースバック エラーには、IndexErrorImportErrorNameErrorValueErrorSyntaxErrorTypeErrorAttributeError、および KeyError

このチュートリアルでは、Python のトレースバック エラーを読んで修正する方法を説明します。

Python の Traceback (most recent call last) エラーを修正

Python でのいくつかのトレースバック エラーの例を見てみましょう。

  1. IndexError: リストに存在しないリストからインデックスを取得しようとすると、IndexError が発生します。

    次の例では、実行時に IndexError が発生します。

    mylist = ["car", "bus", "truck"]
    mylist[3]
    

    出力:

    Traceback (most recent call last):
      File "c:\Users\rhntm\myscript.py", line 2, in <module>
    	mylist[3]
    IndexError: list index out of range
    

    Traceback (most recent call last): の下に、エラーが発生したファイル名と行番号が表示されます。 mylist[5] は、例外の原因となった正確なコードを示します。

    トレースバック エラーには、エラーの種類とそのエラーに関する情報も表示されます。 上記のケースは IndexError: list index out of range です。

    有効なインデックス番号を使用して修正し、リストからアイテムを取得できます。

    mylist[2]
    

    出力:

    'truck'
    
  2. NameError: コードで定義されていない変数または関数を使用すると、NameError が発生します。

    Python での NameError の例を次に示します。

    name = input("Enter your name: ")
    print(username)
    

    出力:

    Enter your name: Rohan
    Traceback (most recent call last):
      File "c:\Users\rhntm\myscript.py", line 2, in <module>
    	print(username)
    NameError: name 'username' is not defined
    

    変数 username がコードで定義されていないため、エラーは NameError: name 'username' is not defined と表示されます。

    したがって、コードで定義されている変数または関数のみを呼び出す必要があります。

    name = input("Enter your name: ")
    print(name)
    

    出力:

    Enter your name: Rohan
    Rohan
    
  3. ValueError: 関数に有効な引数を与えると ValueError が発生しますが、それは無効な値です。

    たとえば、math モジュールの sqrt() 関数に負の数を指定すると、ValueError が返されます。

    import math
    
    math.sqrt(-5)
    

    出力:

    Traceback (most recent call last):
      File "c:\Users\rhntm\myscript.py", line 2, in <module>
    	math.sqrt(-5)
    ValueError: math domain error
    

    数値引数をとる関数は正しいのですが、負の値が無効であるため、ValueError: math domain errorという結果になります。

これで、Python のさまざまなトレースバック エラーがわかりました。 トレースバックは、コード内のエラーを見つけるのに役立ちます。

トレースバックを読んで、コードで例外が発生した理由を知ることができます。 その後、エラーを修正して、コードを正常に再実行できます。

著者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

関連記事 - Python Error