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

Pythonの「unexpected indent(予期しないインデント)」エラーとは?原因と正しい書き方を解説

Pythonにおける「予期しないインデント」エラーとは

Pythonは、コードの構造を表すためにインデント(字下げ)を必須としている点が他の多くのプログラミング言語と大きく異なります。さらに重要なのは、単にインデントがあるだけでなく、一貫性のあるインデントが求められるという点です。

たとえば、ある行を半角スペース4つでインデントしたのに、次の行を3つ(あるいは5つ、6つなど)でインデントすると、「IndentationError: unexpected indent(予期しないインデントです)」というエラーが発生します。

エラーが発生する原因

このエラーは、同じブロック内のコード行の先頭にあるスペースの数が揃っていない場合に起こります。Pythonでは、同一ブロックに属するすべての行は、まったく同じ数のスペースで開始しなければなりません

例として、2つのprint文からなるコードを見てみましょう。3行目の先頭のスペース数が2行目より多いため、このままではエラーになります。どちらのprint文も同じ数のスペースでインデントする必要があります。

修正後のコード例

インデントを揃えることで、エラーのない正しいコードは以下のようになります。

def a():
    print "foo"
    print "baz"

インデントでエラーを防ぐためのポイント

  • 同じブロック内では、必ず同じ数のスペース(一般的には半角スペース4つ)を使用する
  • タブとスペースを混在させない(PEP 8ではスペースの使用が推奨されています)
  • エディタの自動インデント機能や、可視化プラグインを活用してズレを防ぐ

インデントはPythonにおいて文法の一部であり、見た目の問題ではなくプログラムの動作そのものに関わります。一貫したインデントスタイルを心がけることで、この種のエラーを未然に防ぐことができます。

  1. Pythonのosモジュール入門:ディレクトリ操作とファイル操作の基本をマスターしよう

    はじめにPythonのosモジュールは、開発者が実行中のオペレーティングシステム(OS)とやり取りするためのさまざまな関数を提供する標準ライブラリです。この記事では、その中でも特によく使われる以下の操作について解説します。ディレクトリ(フォルダ)の作成・削除ディレクトリ名の変更ファイル操作の基本それでは、早速始めていきましょう。準備:モジュールのインポートosモジュールはPythonのインストール時に同梱されているため、PIPなどで別途インストールする必要はありません。各種メソッドや関数を使うには、モジュールをインポートするだけです。import osこれで、osモジュールが提供するさまざまな

  2. PythonのCGIとは?仕組みとサーバー設定方法をわかりやすく解説

    CGI(Common Gateway Interface:共通ゲートウェイインターフェース)は、HTTPサーバーなどの情報サーバーと外部のゲートウェイプログラムがやり取りするための標準規格です。現在のバージョンはCGI/1.1であり、CGI/1.2が策定中です。Webブラウジングの流れCGIの概念を理解するために、ハイパーリンクをクリックして特定のWebページやURLを閲覧するときに何が起こるのかを見てみましょう。ブラウザがHTTP Webサーバーに接続し、URL(つまりファイル名)を要求します。WebサーバーはURLを解析してファイル名を探します。該当するファイルが見つかればそれをブラウザへ