pythonは、他の言語とは少し違った書き方などがあります。最低限知っておいたほうが良い書き方を少し調べてみました。自分一人で完結するプログラムであればあまりう気にする必要はありませんが、複数人でPGを製造していくプロジェクトに携わる場合は、公式ドキュメントも含め一読しておいた方がいいと思います。
インデントは半角スペース4つが基本だが・・・
インデントは、行の先頭に空白を入れて字下げをすることを言います。字下げをすることによってif文などの制御文などの可読性が上がります。pythonは、インデントがすごく重要です。なぜなら同じ空白の数でインデントしたかたまりを一つのブロックとして認識するからです。他の言語ではインデントが異なっていてもエラーにはなりませんがpythonではエラーになってしまいます。
以下のようにインデントせずに実行すると・・・
x = 1
if x > 0:
#インデントなしだとエラー
print("xは0以上です。")
こんな感じでインデントエラーが発生してしまいます。
IndentationError: expected an indented block
基本は、半角スペース4つでインデントする。
x = 1
#基本的には半角スペース4つでインデント
if x > 0:
#インデントすればエラーにならない
print("xは0以上です。")
インデントした状態だと正しく実行される。
tabやスペース2つでも大丈夫か?
他の言語ではtabで字下げをするケースが多いです。tabキーを1回押せば簡単に字下げができるので便利です。結論はtabでも問題ありません。あくまでpythonのコード規約で半角スペース4つで字下げすることを推奨しているだけです。プロジェクト単位でtabでもスペース2つでもルールがあれば問題ないみたいです。以下の公式ドキュメントにも一貫性にこだわりすぎるのは狭い心の表れであると書いています。1回見てみてください。
処理を記述したくない場合はpassを使う
処理を記述したくない場合は、明示的にpassを記述する必要があります。インデント内に何も処理の記述がない場合はSyntaxエラーが発生します。
何も書かなかった場合は,SyntaxError
passを記述すればエラーにならない
通常のコメントは#を使う
上記でも書いているように通常のコメントは#で書きます。#より右の記述はコメントとして認識します。インデントされた処理にコメントを書く場合はコメントもインデントを適用する必要があります。
docstringは、シングル or ダブルクォーテーション3つ
docstringとは,クラスや関数の定義を説明する際に利用します。通常のコメントと違うのは、ドキュメント化ツールなどを使うと、一括でドキュメント化できるので大きなプロジェクトなどは特に重宝すると思います。docstringを使うケースとして
- help関数でクラスや関数を指定するとdocstringの内容が参照できる。
- sphinxなどのドキュメントツールでドキュメント出力できる。
- 後でクラスや関数を見たときに概要がすぐ把握できる。
- 変数に代入して文字列として扱うこともできる。
などがあります。以下はdocstringを記述した関数(test)をヘルプ関数で参照したときの結果です。
まとめ
- インデントの字下げは空白の数でブロックを認識しているため空白の差異があるとエラーが発生する。
- python公式ドキュメントでは、字下げはスペース4文字を推奨している。(あくまで推奨)
- 普段のメモ程度のコメントは#を使う。
- インデント内で処理の必要がない場合はpassを使う。
- docstringは、シングル or ダブルクォーテーションで括る。
- docstringは、クラスや関数には、説明文として記述したほうが良い
- 規約は書いているが、あくまで推奨で一貫性にこだわりすぎるのは狭い心の表れだとpythonの公式ドキュメントでも言っている。
コメント