きれいに書く

INPUT · スライド

みんなと同じ書き方にそろえる

01 / 07

動くけれど、読みにくい

下のコードはちゃんと動く。エラーも出ない。それでも、なんだか読みにくいよね。

= の左右がそろっていないし、print のかっこの中に余計な空きがある。意味は同じなのに、目が止まる。

nedan=250kosuu =4print( nedan*kosuu )

実行結果

1000

02 / 07

PEP 8 という公式の答え

こういう「どう書くか」の迷いに、Pythonは公式の答えを用意している。それが PEP 8(ペップエイト)というスタイルガイドだよ。

字下げは半角4つ、演算子の前後に空白を1つ、カンマのあとに空白。第1章から当たり前のように使ってきた書き方は、ぜんぶここに書いてあることなんだ。

nedan = 250kosuu = 4print(nedan * kosuu)

実行結果

1000

03 / 07

名前の付けかた

PEP 8 は名前の付けかたも決めている。種類ごとに形が違うので、名前を見ただけで何なのか分かるようになっているよ。

  • 変数・関数 … 小文字とアンダースコア。gokei_kingaku zeikomi_nedan。これを snake_case(スネークケース)と呼ぶ
  • クラス … 大文字始まりで単語を続ける。Kudamono Chokinbako。PascalCase(パスカルケース)
  • 定数(途中で変えない値) … ぜんぶ大文字。SAIDAI_KAZU SHOHIZEI

この教材は変数名をローマ字で書いているけれど、ローマ字のまま snake_case にそろえれば PEP 8 に合うよ。

SAIDAI_KOSUU = 3class Kudamono:    def __init__(self, namae, nedan):        self.namae = namae        self.nedan = nedanringo = Kudamono("りんご", 150)kosuu = 2gokei_kingaku = ringo.nedan * kosuuprint(gokei_kingaku)print(SAIDAI_KOSUU)

実行結果

300
3

04 / 07

空白の入れかた

空白はいくつ入れても動くけれど、PEP 8 の言いかたはこう。

  • 演算子の前後に空白1つ。a = 1 + 2
  • カンマのあとに空白1つ。print(a, b) [1, 2, 3]
  • かっこのすぐ内側には入れない。print(x) であって print( x ) ではない
  • 行末に空白を残さない。目に見えないのに、あとで差分に出てきて邪魔になる

空白は多すぎても少なすぎても読みにくい。1つだけが合言葉だよ。

tens = [80, 95, 70]gokei = tens[0] + tens[1] + tens[2]print(gokei, len(tens))

実行結果

245 3

05 / 07

並べかた

行の中だけでなく、ファイル全体の並べかたにも決まりがあるよ。

  • import はファイルの先頭にまとめる。使う直前に書かない
  • 関数の定義どうしのあいだは空行2つ。かたまりの切れ目が目で分かる
  • 1行は長くしすぎない。PEP 8 の目安は79文字。長くなったら途中を変数に分ける

空行2つは多すぎるように感じるかもしれないけれど、実際のPythonのコードはほとんどこの形になっているよ。

import mathdef enmenseki(hankei):    return math.pi * hankei * hankeidef shikaku_menseki(tate, yoko):    return tate * yokoprint(round(enmenseki(2), 2))print(shikaku_menseki(3, 4))

実行結果

12.57
12

06 / 07

守らなくても動く。それでも従う

ここまで読んで気づいたと思うけれど、PEP 8 を破ってもプログラムは動く。エラーにもならないし、誰にも怒られない。

それでも世界中のPython使いが従っているのは、書き方が揃っていると、読むときに中身だけに集中できるからだよ。

書き方がばらばらだと、コードを読むたびに「この人はどう書く人だろう」を先に読み解かないといけない。それは中身とは関係ない、まったくの無駄な手間なんだ。全員が同じ形で書けば、その手間がゼロになる。

07 / 07

道具にまかせてもいい

全部を手で覚える必要はないよ。PEP 8 に沿っているかを調べる道具や、自動で整えてくれる道具が用意されている。実際の現場では、保存した瞬間に整うようにしていることが多いんだ。

だからあなたが覚えるべきなのは、細かい文字数ではなく「そろえると読みやすくなる」という感覚のほう。

次のレッスンでは、そろえた先にあるものを扱うよ。コードの中に、そのコードの説明そのものを埋めこむ書き方だよ。