Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python TabError:インデントソリューションでのタブとスペースの一貫性のない使用

Pythonプログラムでは、スペースまたはタブを使用してコードをインデントできます。同じコードブロックで両方を組み合わせて使用​​しようとすると、「TabError:インデントでのタブとスペースの使用に一貫性がない」というエラーが発生します。

このガイドでは、このエラーの意味と発生する理由について説明します。このエラーの例を見ていき、コードでエラーを解決する方法を理解できるようにします。

TabError:インデントでのタブとスペースの一貫性のない使用

Pythonスタイルガイドでは、Pythonでコーディングする場合、スペースがインデントの推奨される方法であると述べていますが、スペースまたはタブのいずれかを使用できます。

Pythonではインデントが重要です。言語は、コードのブロックの開始位置と終了位置を示す中括弧などの構文に依存しないためです。インデントは、どのコード行がどのコードブロックの一部であるかをPythonに伝えます。

次のプログラムを検討してください。

numbers = [8, 7, 9, 8, 7]

def calculate_average_age():
average = sum(numbers) / len(numbers)
print(average)

インデントがないと、calculate_average_age関数の一部であるコードの行と、メインプログラムの一部であるコードの行を知ることはできません。

スペースまたはタブのいずれかを使用することに固執する必要があります。タブとスペースを混在させないでください。これを行うと、Pythonインタープリターが混乱し、「TabError:インデントでのタブとスペースの使用に一貫性がない」というエラーが発生します。

シナリオ例

ドーナツ店での購入総額を計算するプログラムを構築したいと考えています。まず、購入のリストを定義しましょう。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

purchases = [2.50, 4.90, 5.60, 2.40]

次に、「購入」リストの合計を計算する関数を定義します。

def calculate_total_purchases(purchases):
	total = sum(purchases)
    return total

この関数は、1つのパラメーターを受け入れます。それは、計算する合計値である購入のリストです。この関数は、パラメーターとして指定したリストの合計値を返します。

sum()メソッドを使用して、「購入」リストの数の合計を計算します。

このコードスニペットをテキストエディタにコピーすると、コードの「return total」行がスペースを使用してインデントされているのに対し、「total =sum(purchases)」行はインデントにタブを使用していることに気付くかもしれません。これは重要な違いです。

次に、関数を呼び出して、コンソールに返される値を出力します。

total_purchases = calculate_total_purchases(purchases)
print(total_purchases)

私たちのコードはcalculate_total_purchases()を呼び出します ドーナツストアで行われたすべての購入の合計値を計算する関数。次に、その値をコンソールに出力します。コードを実行して、何が起こるか見てみましょう。

  File "test1.py", line 5
	return total
           	^
TabError: inconsistent use of tabs and spaces in indentation

コードはエラーを返します。

ソリューション

コードをインデントするためにスペースとタブを使用しました。 Pythonプログラムでは、これら2つのインデント方法のいずれかを使用することに固執する必要があります。

コードを修正するために、スペースのみを使用するように関数を変更します:

def calculate_total_purchases(purchases):
	total = sum(purchases)
    return total

このコードでは、インデントに4つのスペースを使用しています。新しいインデントを使用してプログラムを実行してみましょう。

15.4

私たちのプログラムは、ドーナツ購入の合計値を正常に計算します。

IDLEエディターでは、次の手順に従って、コードブロックのインデントを削除できます。

  • インデントを削除するコードを選択します
  • [メニュー]->[フォーマット]->[リージョンのタブを解除]をクリックします
  • 使用するインデントの種類を挿入します

これは、IDLEエディターを使用している場合に、ドキュメントの書式を修正するための便利な方法です。 Sublime Textのような他の多くのエディターには、ファイルのインデントを変更する独自の方法があります。

結論

Pythonの「TabError:インデントでのタブとスペースの一貫性のない使用」エラーは、スペースとタブの両方を使用してコードをインデントしようとすると発生します。

このエラーを修正するには、プログラム内のスペースまたはタブのいずれかに固執し、好みのインデント方法を使用しないタブまたはスペースを置き換えます。これで、プロのプログラマーのようにこのエラーを修正するために必要な知識が得られました!


  1. Pythonコードのパッケージ化と公開?

    Pythonは、パッケージを作成または公開するための非常に簡単な方法を提供します。 Pythonでのパッケージ管理は、さまざまなツールから利用できます- ピップ- オペレーティングシステムへのソフトウェアパッケージの手動インストールや更新を事実上排除するため、これは依然として推奨される選択肢の1つです。パッケージの完全なリストとそれに対応するバージョン番号を管理し、個別の個別の環境でパッケージグループ全体の正確な複製を促進します。 Python Package Index(PPI)は、pip.i.eを使用してインストールできるユーザー送信パッケージのパブリックパッケージリポジトリ

  2. 修正:インデントエラーPython

    Pythonは、1991年に最初にリリースされた新しいプログラミング言語です。この言語は、その大規模な包括的なライブラリで知られており、機能、必須、手続き型、オブジェクト指向などのいくつかのプログラミングパラダイムをサポートしています。 「インデントエラー:インデントされたブロックが必要です ’はあらゆる種類のユーザーに発生します。彼らが初心者であろうと経験者であろうと。 Pythonはすべてのコードを正しい空白で配置するため、インデントが不適切な場合、コードはコンパイルされず、エラーメッセージが返されます。 PEP8で従う規則によれば、必要に応じて4つの空白が必要です。すべてのプログラ