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

Python IndentationError:予期しないインデントソリューション

IndentationErrorsには、2つの目的があります。コードを読みやすくすることと、Pythonインタープリターがコードを正しく理解できるようにすることです。不要なスペースやタブを追加すると、「インデントエラー:予期しないインデント」エラーが発生します。

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

インデントエラー:予期しないインデント

インデントは、コードの行が特定のコードブロックの一部であることを示す特定の数のスペースまたはタブです。次のプログラムを検討してください。

def hello_world():
	print("Hello, world!")

hello_world()という単一の関数を定義しました。 。この関数には、printステートメントが含まれています。このコード行が関数の一部であることをPythonに示すために、インデントしました。

好みに応じて、スペースまたはタブを使用してコードをインデントできます。コードを別のコードブロックの一部にする必要がある場合にのみ、コードをインデントする必要があります。これには、次のコードを記述する場合も含まれます。

  • 「if…else」ステートメント
  • 「try…except」ステートメント
  • 「for」ループ
  • 「関数」ステートメント

Pythonコードが特別なステートメントに含まれている場合は、一貫してインデントする必要があります。 Pythonはインデントを厳密に適用します。

JavaScriptのような一部のプログラミング言語は、コードのブロックを示すために中括弧を使用するため、厳密にはインデントを強制しません。 Pythonにはこの機能がないため、言語はインデントに大きく依存します。

「IndentationError:予期しないインデント」エラーの原因は、コードをインデントしすぎているか、コード行をインデントするためにタブとスペースを使用しすぎていることです。

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

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

発生する可能性のあるその他のインデントエラーは次のとおりです。

  • インデント解除は他のインデントレベルと一致しません
  • インデントされたブロックが必要です

シナリオ例

ユーザーが行った購入のリストをループして、$25.00を超えるすべての購入をコンソールに出力するプログラムを作成します。

まず、購入のリストを定義しましょう:

 purchases = [25.50, 29.90, 2.40, 57.60, 24.90, 1.55]

次に、購入リストをループして、25ドルを超える価値のあるものをコンソールに出力する関数を定義します。

def show_high_purchases(purchases):
	   for p in purchases:
		        if p > 25.00:
			            print("Purchase: ")
				                print(p)

show_high_purchases() 関数は1つの引数を受け入れます。それは、関数が検索する購入のリストです。関数はこのリストを反復処理し、ifを使用します 各購入が$25.00以上の価値があるかどうかを確認するためのステートメント。

購入額が$25.00を超える場合は、ステートメントPurchase: コンソールに出力されます。次に、その購入の価格がコンソールに出力されます。そうでなければ、何も起こりません。

コードを実行する前に、関数を呼び出し、購入リストをパラメーターとして渡します。

show_high_purchases(purchases)

コードを実行して、何が起こるか見てみましょう。

  File "main.py", line 7
	print(p)
	^
IndentationError: unexpected indent

コードが正常に実行されません。

ソリューション

他のPythonエラーと同様に、エラーメッセージ全体を読んで、何が起こっているかを確認する必要があります。問題は7行目にあるようです。ここで、購入額を印刷します。

	if p > 25.00:
			print("Purchase: ")
				    print(p)

ちなみに、2番目のprint()をインデントしました 声明。 2番目のprint()が原因で、エラーが発生します ステートメントは、別のコードブロックの一部ではありません。それはまだ私たちのifの一部です 声明。

このエラーを解決するには、すべてのprint()を一貫してインデントする必要があります。 ステートメント:

	if p > 25.00:
			print("Purchase: ")
				    print(p)

両方のprint() ステートメントは同じifの一部であるため、同じレベルのインデントを使用する必要があります 声明。上記でこの改訂を行いました。

コードを実行してみましょう。

Purchase:
25.5
Purchase:
29.9
Purchase:
57.6

私たちのコードは、25.00ドル以上の価値のあるすべての購入をコンソールに正常に出力します。

結論

「IndentationError:予期しないインデント」は、コード行を何度もインデントすると発生します。このエラーを解決するには、すべてのコードで一貫したインデントを使用し、不要なインデントがないことを確認してください。

これで、Pythonエキスパートのようにこのエラーを修正する準備が整いました!


  1. Google ColaboratoryでPythonコードを実行するにはどうすればよいですか?

    Google Colaboratoryは、セットアップを必要とせず、完全にクラウドで実行される無料のJupyterノートブック環境です。これはGoogleクラウドでホストされ、クラウド環境を使用してPythonスクリプトを実行およびテストしたいPythonコーダーの利益のためにGoogleによって維持されます。この記事では、Googleのコラボレーティブクラウド環境をセットアップして実行する方法を説明します。 Pythonノートブックを開く このグーグルリンク(https://colab.research.google.com/)に移動します。下の画面が開きます。下の図に示すように、右下隅か

  2. Pythonコードの最適化のヒント?

    Pythonは他の準拠言語ほど高速でも効率的でもないことは誰もが知っていますが、ただし、Pythonコードがはるかに大きなワークロードを処理できることを示している大企業はたくさんあり、それほど遅くはないことを示しています。このセクションでは、正しいPythonプログラムをさらに高速かつ効率的に実行するために、覚えておくべきヒントをいくつか紹介します。 ヒント1:組み込み関数を使用する Pythonで効率的なコードを書くことはできますが、組み込み関数(Cで書かれている)に勝るものはありません。下の画像は、Python組み込み関数のリストを示しています ヒント2:Pythonの複数の代入を