Pythonは、1991年に最初にリリースされた新しいプログラミング言語です。この言語は、その大規模な包括的なライブラリで知られており、関数型、命令型、手続き型、オブジェクト指向などのいくつかのプログラミングパラダイムをサポートしています。
「インデントエラー:予期されたインデントされたブロック」があらゆる種類のユーザーに対して発生します。初心者でも経験豊富でも。Pythonはすべてのコードを正しい空白で配置するため、インデントが不適切な場合、コードはコンパイルされず、エラーメッセージが返されます。
PEP8で採用されている規約によれば、必要な場所には4つの空白が必要です。コードの読みやすさが向上するように、すべてのプログラマーが適切なインデントを使用することが理想的です。
Pythonのインデントエラーの原因は何ですか?
前述のように、このエラーは主に、コードにスペースまたはタブのエラーがあるために発生します。Pythonは手続き型言語を使用しているため、タブ/スペースを正しく配置しないと、このエラーが発生する可能性があります。プログラムは正常に動作する可能性がありますが、インタープリターがこのエラーを検出すると、エラーメッセージが途中で表示されます。エラーの原因のいくつかは次のとおりです。
- コードでスペースとタブの両方を使用しています。両方を交換して使用すると、インタープリターは使用するアイテムを判別できなくなります。
- インデントを間違えました。インデントの習慣に従っていない場合、必然的にこのエラーが発生します。
- 「if」、「for」、「while」などの複合ステートメントをインデントするのを忘れました。
- ユーザー定義の関数またはクラスをインデントするのを忘れました。
解決策1:間違った空白/タブをチェックする
この問題の即時修正はありません。コードはあなたのものなので、各行を調べて、どこで間違いを犯したかを確認する必要があります。構造に関しては、コードにいくつかのブロックがあります。「If」ステートメントがある場合は、それに続くコードにインデントが必要です。
上の図をご覧ください。途中で新しいブロックが導入されても、特定のブロックのインデントはコード全体で同じままです。インデントが一貫していることを確認してください。スペースを使用する場合は常にスペースを使用し、タブを使用する場合は常にタブを使用してください。2つを混在させると問題が発生します。
上記の例では、正しいインデントが示されています。初心者向けの「for」ループを参照してください。「for」ループ内のすべてをインデントする必要があります。「for」ループの内部には、「if」ステートメントがあります。「if」ステートメント内では、すべてをさらにインデントする必要があります。
エラーログを確認し、エラーの発生元の行を確認することで、インデントエラーが発生した場所を簡単に確認できます。
解決策2:エディターでタブ/スペースシンボルを有効にする
すべてのプログラマーが行うように、「推測」でコードをインデントするのに苦労している場合は、IDEまたはコードエディターでタブ/スペースのシンボルを有効にできます。このオプションは、コード内の小さな「ドット」を有効にします。各ドットはスペースまたはタブを表します。これを使用してコードをより適切にインデントし、余分なインデントや欠落がないことを確認できます。
この例では、Notepad ++を使用して、シンボルを有効にする方法を確認します。コード編集に別のソフトウェアを使用している場合は、それに固有の設定を有効にできます。
- ビュー>シンボルの表示>空白とタブの表示を押します。
- これでオプションが有効になります。インデントガイドを有効にして、作業を簡単にすることもできます。
上記の例を確認してください。各クラスの後に実装されたインデントを確認してください。各スペースは1つのドットで表されます。コードの間違ったインデントに変更を加えた後、それを再度実行し、問題が解決するかどうかを確認します。