見出し画像

読書ノート - 独学プログラマー Python言語の基本から仕事のやり方まで

はじめに

独学プログラマー Python言語の基本から仕事のやり方まで を読了したので、覚えておきたい内容を備忘録。


感想

これからPythonを勉強する方、Pythonを書籍で勉強したことがない方に入門書としてとてもおすすめな本です。

最初はとっかかりを掴むためにProgateなどで勉強するで全然問題ないと思うんですが、Progarteでは結構点と点がつながらなかったりするんですよね。その点、本はかなり体系的に説明してくれるので、今まで学習していた関数やアルゴリズムはこの考えから出てくるものなのか!と知識が整理された感覚が得られます。理想的には本から始めてWebでさらに知識を深めるのがいいのでしょう。

個人的には、「プログラミングパラダイム」の説明や、「オブジェクト指向プログラミングにおける慣例」がとてもしっくりきました。
今まで断片的にコードを見てきたので、変数の命名規則に隠された慣例とかあまり意識してこなかったんですよね。あとは言語としてFortranという古代言語を研究室で使っていたので、オブジェクト指向のプログラミングが本質的に理解できてなかったんですが、今回この本を読んでPythonにおける手続き型プログラミング・関数型プログラミング・オブジェクト指向プログラミングの違いについてきちんと理解できたのが大きなLearningでした。

この本は、Pythonのプログラミングだけではなくて、BashやGitなどのプログラミングする上では必須となるツールの基礎まで触ってくれるので、非常にいいですね。この本をコーディングしながら読めば自然とPython学習の骨格が身につくと思います。初心者は辞書として隣に置いておくのがいいのではないでしょうか。

個人的ざっくり重要ポイント

プログラミングパラダイム

  • 手続き型プログラミング
    入門書はまずここから始まる。1行ずつ実行していく形。

  • 関数型プログラミング
    引数を変えると、戻り値が変化する

  • オブジェクト指向プログラミング
    クラスに値を渡すと、変数や関数のセットが都度定義されるイメージ

self変数

慣習として、1つ目の必須な引数にはselfという名前を使う。
self変数はインスタンス変数(オブジェクトに属する変数)の定義に使う。クラスからオブジェクトを作るとき、__init__はデフォルトで呼び出されるメソッド。

 #Python 
Class Orange:
    def __init__(self, w, c):
        self.weight = w
        self.color = c
        self.mold = 0
        print("Created!")

    def rot(self, days, temp):
        """tempは摂氏"""
        self.mold = days * temp

or1 = Orange(10, "dark orange")
or2 = Orange(8, "light orange")

print(or1.weight)
print(or2.weight)
or1.color = "yellow"
print(or1.color)
orange.rot(10,37)
print(orange.mold)

関数の初めに"""で囲うドキュメンテーション文字列docstringをつける。これはこの関数が何をするか、どのような引数を使うかなどをドキュメント化した文字列。

カプセル化 - 変数の種類

Pythonにはプライベート変数はないため、命名規則で判断

  • パブリック変数:クラス内部のデータをClientから直接操作できる

  • プライベート変数:_から始まる変数。クラス内からのみ操作可能

プログラミングのベストプラクティス

  • コードを書くのは最後の手段 - 巨人の肩に乗る方法をまず考える

  • DRY (Don't Repeat Yourself) - できるだけ関数などを使用する

  • 直行性 - aはbに影響するべきでない

  • どのデータも1箇所で定義する - より良い方法はデータベースやファイルに格納すること

  • 1つの関数には1つのことだけをさせる - 関数名が機能を説明できるようになる

  • 時間がかかりすぎていたら、多分間違っている - プログラムの処理の時間で判断

  • 慣例に従おう - コーディング規約をみる(PythonはPEP8)

  • 強力なIDEを使おう - 例えばPyCharm

この記事が気に入ったらサポートをしてみませんか?