Pythonの学習のために、IDLEシェル(対話モード)elifを入力しようとすると以下のように、インデントしているはずなのに、「SyntaxError: unindent does not match any outer indentation level(インデントの位置が一致していない)」というエラーが表示されてしまうことがあります。

idle indent error

IDLEシェルではelifとelseは左に詰める

IDLEの対話モードでは、以下のようにelifを左に詰めてください。elseも同様です。

idle indent

これはIDLEシェル「独自の仕様」です。対話モードのプロンプト>>> は便宜上表示しているだけで、コードとしては考慮しません。つまり、>>> は無いものとしてコードを書くことになります。

ターミナルではパディングしてくれている

一方、コマンドプロンプトターミナルで対話モード(インタラクティブシェル)を利用する場合は、以下のように2行からは、... パディング(詰め物)してくれます。

terminal indent

些細なことでもハマると・・

Pythonの入門書は、IDLEの対話モードから始めるのが定石ですが、なぜかこのことを説明している参考書が少ないです。恐らく当たり前のことだから書き忘れているかもしれません。

しかし、初めて学習する時は、このような些細なことでつまずいしまうものです。弊社が実施しているPython通信講座では、このような「初学者のつまずき」を最大限なくすよう努めています。興味がございましたら、是非下記のページをご覧ください。

オフィスワークを自動化したいビジネスパーソンのためのPythonプログラミング講座です。Pythonの基本から学習しますので、プログラミングの経験は不要です。エクセルが使えれば大丈夫です。 毎回…