こんにちは、夜ご飯は納豆です。
納豆単体でも料理として成立しているのに、キムチやオクラなんかと一緒に食べるとさらにおいしいのでつい連日食べてしまうんですよね。
しかも三パックとかでしか売ってないので続けて食べさせようとしているんじゃないかとか疑ってしまいます。
さて、、納豆を食べ続けていくよりも、Qiitaにまとめていくのを続けていきたいです。
今日は、コーディング規約を守りながら書いていく際に自分的に怒られがちなものを書き連ねていきたいと思います。
※備忘録として書くので詳しいことは実際にコーディング規約を見るのが早いと思います。
コーディング規約について
- コーディング規約は、必ずしも順守しなくてはいけない(守らなかったら罰金!とかではなく)ものではないが守ることでより読みやすく、一貫性のあるコードを書くためのものです。
- 各プログラミング言語のコーディング規約
どの言語にもコーディング規約なるものが存在します。1 - Pythonでは通称PEP8(ペップエイト)と呼ばれるドキュメントにまとめられています。
- 近々PEP8の理解度が計れるPythonZen & PEP 8 検定試験が、無償で始まるようです!
- 規約の存在意義としては、コードを読みやすくするとともに、Pythonで書かれた幅広いコードのスタイルを一貫させることにあるようです。
- PythonZenにも以下のように書いてあります。(訳は自分でつけました。)
Readability counts.
"読みやすさは配慮しよう"
(中略)
There should be one-- and preferably only one --obvious way to do it.
"誰が見ても良い方法がなにかあるはずだ"
(以下略)
可読性と一貫性を大事にしていきたいです。
pycodestyleについて
- 自分で開発したプログラムがPEP8に違反していないかどうかをチェックしてくれます!
- 以下、インストール方法
開発環境はos:Windows / Python: 3.10.2 64-bit / IDE:Microsoft VS Codeです。
Pythonのインストールは割愛させてください。
# 最新版をインストール
pip install pycodestyle
# バージョンを確認
pycodestyle --version
>>> 2.8.0
上記で、pycodestyleはインストール完了です。
実際に開発したプログラミングをチェックしてみます。
# チェック
pycodestyle プログラミング名.py
>>> プログラミング名.py:26:1: E265 block comment should start with '# '
プログラミング名.py:29:1: E265 block comment should start with '# '
プログラミング名.py:32:80: E501 line too long (84 > 79 characters)
プログラミング名.py:38:9: E265 block comment should start with '# '
プログラミング名.py:43:22: E711 comparison to None should be 'if cond is not None:'
プログラミング名.py:46:9: E265 block comment should start with '# '
プログラミング名.py:46:24: W291 trailing whitespace
👆こんな感じで規約にのっとっていない箇所を返してくれます。(#の後ろ半角空け怠けすぎ...)
違反備忘録
CASE1 「Noneの場合の比較演算子」
E711 comparison to None should be 'if cond is not None:'
if i != None:
の場合など比較演算子使う際に、!= None
ではなくis not None
って書く。
CASE2 「お尻一行は空行」
W292 no newline at end of file
そ、そんな。。
CASE3 「importは一番はじめに書こう」
E402 module level import not at top of file
たしかに、VBAとかでも上に書いてたよなって思いました(小並感)
Tips
Python のソースコードを自動で PEP8 に準拠させるツールとしてautopep8というものがあるようです。違反している箇所が多ければ便利そうです。。が、まずはコーディング規約の所作(?)を身に付けたいので使いたい気持ちをちょっと抑えておこうと思います(笑)