プログラミング

【インデントはスペース?それともタブを何個?】Pythonにおけるインデントのルールについて

  • Pythonでのインデントで使用する空白は2つか4つ?
  • タブを使用したらいいのか?

Pythonでコードを書いていて、そんな悩みを思ったことはありませんか?
先日、Pythonを知り合いに教えたので、皆さんも同じ悩みがあるかもしれませんので、本記事で紹介させて頂きます。

Pythonの規約をまとめたサイトであるpep8-jaでは、Pythonで使用するインデントはスペースは4つにしようというルールがあります。
今まで、スペース2つにしていた方は、この機会にスペース4つにしましょう。

自分はタブを使用しているという方は、ツールのデフォルト設定をすぐに変更しましょう。

Pythonのインデントとは何か?

Pythonのインデントとは、行の先頭にある空白のことです。

因みに英語辞書でのインデント(indent)の意味は、以下の意味があります。
IT用語では、英語がよく使われるので、一つづつ覚えていくといいですよ。
分からない場合は、辞書で調べるのもおススメです。

・他の行より下げて印刷する
・(…に)くぼみを作る、
・(…を)へこませる

参照:weblio indent

Pythonのインデントルールを明記しているPEP8によると空白は4文字

PEP8ではインデントは
1レベルインデントするごとに、スペースを4つ使いましょう。
“スペースが好ましいインデントの方法です。

タブを使うのは、既にタブでインデントされているコードと一貫性を保つためだけです。

Python 3 では、インデントにタブとスペースを混ぜることを禁止しています。

参照:pep8-ja

 

Pythonではインデントを合わせないとどうなる?エラーになるのか?

Pythonではインデントが空白1文字でも、2文字でもエラー発生しません。
しかしグループごとに先頭文字を合わせる必要があります。

空白4文字で、正常に動作する書き方

 

 

空白8文字で、正常に動作する書き方

 

 

エラーとなる書き方

となります。

そのため、インデントを統一した書き方をする必要があります。

【まとめ】Pythonにおけるインデントはスペース4文字とする。

今まで、Pythonのインデントに迷っていた方は、今後はインデントはスペース4文字にしましょう。
PEP8でも規定されている通り、文字数に規定はありませんが、ほかの方とも開発を行う場合は、開発者によってインデントが異なると後々の運用でインデントが異なりソースが見にくい状況が発生してしまします。

またインデントはグループ毎に先頭行の空白文字数を統一をしないとエラーとなります。
そのため、グループ単位では先頭行を統一しましょう。

ABOUT ME
みるみる
みるみる
【日々人生をおもしろくするには!?】をモットーに生きてます。 30代中盤のIT企業に勤めるサラリーマンです。 『メンタル』:心理学や実生活で役立つこと。 『IT』:効率化やITを使った自動化・手間の削減 『ダイエット』:細マッチョを目指して、健康的に食事と運動を。