HOWTO · Python

Python で TabError を修正

このチュートリアルでは、Python でタブエラーを修正するための原因と解決策を示します。

このページの内容

Python は、最も広く使用されているプログラミング言語の 1つです。コードブロック(ループブロックや if 条件ブロックなど)に中括弧を使用する Java や C++ などの他のプログラミング言語とは異なり、インデントを使用してコードのブロックを定義します。

Python のインデントルール

定義された規則に従って、Python はインデントに 4つのスペースまたはタブを使用します。コードブロックはタブインデントで始まり、そのブロックの次のコード行はインデントされていません。

先頭の空白は、行の先頭のインデントレベルを決定します。特定のコードブロックのステートメントをグループ化するには、インデントレベルを上げる必要があります。

同様に、グループ化を閉じるには、インデントレベルを下げる必要があります。

Python での TabError の原因

Python はインデントに 4つのスペースまたはタブを使用しますが、コードの記述中に両方を使用すると、TabError:インデントでのタブとスペースの一貫性のない使用が発生します。次のコードでは、タブを使用して 2 行目と 3 行目をインデントし、スペースを使用して 4 行目をインデントしています。

サンプルコード:

# Python 3.x
def check(marks):
    if marks > 60:
        print("Pass")
        print("Congratulations")


check(66)

出力:

#Python 3.x
File "<ipython-input-26-229cb908519e>", line 4
    print("Congratulations")
                            ^
TabError: inconsistent use of tabs and spaces in indentation

Python で TabError を修正

残念ながら、このエラーを自動的に修正する簡単な方法はありません。コードブロック内の各行をチェックする必要があります。

この場合、この ----*のようなタブ記号が表示されます。空白にはこの記号はありません。したがって、4つのスペースまたはタブを一貫して使用することでコードを修正できます。

この例では、スペースをタブに置き換えて、TabError を修正します。以下は正しいコードです。

サンプルコード:

# Python 3.x
def check(marks):
    if marks > 60:
        print("Pass")
        print("Congratulations")


check(66)

出力:

#Python 3.x
Pass
Congratulations