

基礎からもう1周の一環でPythonのコーディング規約「PEP8」を読んだ。
一番衝撃だったのはタイトルの通り。
僕の勝手なイメージではプロはタブでインデント、素人はスペース連打だと思っていたので、このまま知らずにいたら何処かで大恥をかいていたかもしれない。
学習サイトの課題で、このコードを修正してください、などをやっているときも「何でこれ全部スペース入ってんだよ素人か」などと思っていたが素人なのは僕の方であった。心の中で思っているだけの間に知れたので良かったが、何処かで口に出してしまっていたら大変だった。知らないとは恐ろしいことだ。
僕はタイプ別感じ悪い人間診断で言うところの、人より物を知っている思い込んでいるタイプなので、油断するとちょいちょい実際は詳しくないことに対しても自分が知っていることが全てであるかのような発言をしてしまうのだ、ああ恐ろしい。
他にもこんなのがあった。
import os, sys
これ、良い書き方だと思っていたのだが、
import os
import sys
こっちが良い書き方らしい。
もっとひどいのが、
from math import *
これ、出来る人の書き方だと思っていた。
だってAtcoderの提出で使ってる人が多かったから・・・
実は使わないことが推奨されている書き方だった。
考えてみるとAtcoderはその場で素早く問題を処理する為だけに書いているので、自分が読めればそれで良い、というコードを書いているのかもしれない。
これは、あぁそういうルールだったのか、と思ったやつ。
x = a + b
+ の前後にスペースが入っている。
しかし、
こうなるとスペースが無い。
x = (a+b) * 2
まあそんなもんなのかな、と思っていたのだが。
計算の優先順位が先のものにはスペースを入れない。
という明確なルールの元があったのだ。
ガッテンガッテン
x = a * b
この場合スペースが入るけど、
x = a*b + 2
こうだと * の優先順位が先だからスペース無し。
ガッテンガッテン
雰囲気だと思っていたが、雰囲気で決めている訳がなかった。
def sample(x, y=0):
これも何となくこの場合は=の両側のスペース入れないのかなとは思っていたが。
キーワード引数やデフォルトパラメータの = はスペースなし。
というルールだった。
これも決まってるのがわかってスッキリしたやつ。
sample_list = [
a,b,c,d,e, #スペース4つ
f,g,h,i,j,
]
def sample(
a,b,c, #スペース4つ + 4つ
d,e,f):
print(a)
何となく見やすいようにしていたが、これで何となくでやらなくて良くなった。
これで僕も、こいつわかってるな、というコードが書けるに違いない。
こういうのって国語で言うところの作文用紙の使い方みたいなものだと思うから最初に言っといてくれても良いのに。
学校教育にガッツリ導入されたら最初にやるようになったりするのだろうか、学校教育の唯一の良いところはこういう鬱陶しいと思われることを最初にしつこくやることくらいだ。テストでインデントが汚いから×とかされるのかもしれない。










