【Python7】pythonの文法⑥<StyleGuide編>

それでは下記の記事の続きをやっていこう!

👇前回までは<オブジェクト指向編>ということでオブジェクト指向の概念、クラス、クラス継承などPythonを理解する上で最も重要なことを学習してきました。

【Python6】pythonの文法⑤

今回は<StyleGuide指向編>になります。Pythonコードを実装する上での書き方の決まりごとや標準のルールを学習することで、他の人が理解できるコードが書けるようになります。
難解なコードよりも”綺麗なコード”が書けるように一緒に勉強していこう🤓

StyleGuideとは

✔️Pythonのコードを書く上での書き方や決まりごと(命名規則etc)
✔️コードの書き方を標準化することで可読性の高いコードを実装できるようになる
✔️共通したルール(PEP8)があるので、それに従って書く

関数の書き方

importの書き方

コメントの書き方

✔️”Command + /“でコメントアウトすることが出来る
✔️コメントは常に最新版となっていることを確認しておく
✔️英語で書くのが好ましい
✔️コメントは文章になっていること(意味が通っている文章を書く)
✔️#に半角スペースを入れてから書き出す
✔️インラインコメントの場合は、コードの一番後ろの後に半角スペースを2つ入れて#を書く
✔️Docstringは基本的に全てのmodule, functionm class, methodにつける(non public関数は不要)
✔️コメントはWhat何を書いているかを書くのではなく、Why なぜそう書ているかを表現する

命名規則(name convention)

✔️変数名、関数名 : snake_case(小文字や数字を_で繋ぐ)で書いていく ex.) car_drive, func_1
✔️クラス名 : CamelCase(各々の単語の頭文字を大文字にする)で書いていく ex.) Car, MyClass
✔️モジュール名、パッケージ名 : 短いlower caseかsnake_caseで書く ex.) time, numpy
✔️internal use only(non public)としたい時は_xxx(ex. _nonpublic)
✔️予約語 : Pythonで既に使われている単語を使いたい時は、xxx_とする(ex. type_)
✔️クラスの属性を名前修飾したい時は_ _xxxとする(ex. __name)
✔️_ _ xxx_ _はmagic methodでPythonが特別に設定しているもので、開発者が定義することはない
✔️l, U, 0などの一文字の変数は見間違えやすいので、使わない
✔️Constants(宣言後変更しない変数)は、大文字のsnakecaseを使う(ex. PI = 3.14)

returnとifの書き方

Linter(StyleGuideに沿ったコードになっているか確認するライブラリ)

✔️サードパーティライブラリでチェック可能⇨pycodestyle, pyflakes, flake8, pylint
・Stylistic Lint ⇨ import os, sys ex.) 1行で2つのモジュールをimportしているよーー
▶️代表的なlinter: pycodestyle(*元pep8)
・Logical Lint ⇨ impot os, sys ex.)sys:使われていないモジュールがimportされてるよーー
▶️代表的なlinter: pycflakes
✔️pycodcestyleとpyflakesのラッパーライブラリ: flake8
✔️flake8より厳しいlinter: pylint

linterの使い方

✔️ pipを使ってインストール(pip install <library name>)
✔️ pylint <python script>で実行
✔️ 使用頻度の高いオプション
  - -show-source : 問題のある箇所のコード表示
  - -show-pep8 : 該当するpep8の情報を表示する
  - -statistics : 統計のみ表示(通常-qqと併用)

以上になります、いかがだったでしょうか?
体系的に学んだことがなかった方に関しては、参考にできる部分があったんじゃないでしょうか?

Pythonの勉強にリソースを多く割いてしまい、StyleGuideについて勉強したことない方は多いと思いますが、Pythonの標準化されているルールをしっかり押さえておくことで、誰が見ても読みやすい綺麗なコードが書けるようになります。
面倒臭いところはありますが、一度は勉強してみるのもいいんじゃないでしょうか😃

以上で文法編は終了になります✨①~⑥までとても長かったと思いますが、Pythonの文法に関しては全体の80%程はインプットされたんじゃないでしょうか◎

この後の学習で、最も大切になってくるのが、
これまで学んだことをいかにアウトプットできるかです。今まではインプットばっかりしてきましたが、この知識を正しい場所で正しくアウトプットできないと、今までの学習が水の泡ですよね。

もっと言うならば、いかに自分でアウトプットできる環境にいき、学び続けるかです。
自分でPythonで業務効率化のツールを作ってみる、機械学習ライブラリ(Numpy, Pandas, scikit-learn, Pytorch, etc)の勉強を続け、機械学習を使ってAIを実装してみる、Djangoを勉強してWebアプリケーションを作ってみる、何でもいいんです

大事なのは自分がやりたいこと、興味ある分野をどんどん勉強してスキルを身につけることです。

このブログではそういったスキルを学び続けられる、筆者と一緒にモチベーション高く学習していけるような題材でどんどん投稿していきますので、楽しみにしててください。

まずは文法80%→100%にするために細かい知識を共有していこうと思います、それでは次回また会いましょう!

今回はこの辺で、ばいばい👋