秋克凜の暇日記

技術とか色々考えていきます。

「退屈なことはPythonにやらせよう」を読んでいく。〜1章 Python入門〜

はじめに

どうも皆さん、秋克凜と申します。

近頃は、バイト先の会社で大雑把に言えばデータ分析業務をしていたり、半年に一回、自然言語処理系の研究をして論文に追われているただの平凡な大学生アイマスPです。初心に立ち返って勉強の記事書いていきたいなと思います。よろしくお願いします。

(なんだかんだ言ってブログとか書くの初めてなので色々拙いかもしれないんですが、暖かい目で見守ってくれると幸いです。)

 

最近いろいろな場面で、Pythonを扱うことが多いんですが、Python 超できる友人がすごいできるのを見て、俺もヤンナイトやばいのでは・・・と感じる機会が増えてしまったり、実務でも活かせる知識を書籍から得たいなって思うことが増えたので人心一新。この際オライリー本で勉強していこうと思いました。

実はゼロから作るDeep-learning②も積んでるような状態ですが今度はそっちの①からレビューできたらと思います・・・(汗)約束はしないです

 

www.oreilly.co.jp

 

おれはこの本でビギナーを卒業する!!!うるせぇ!いくぞ〜!!(もうPython童貞とは言わせねぇ!!!

という心意気でやっていこうと思います。(三日坊主にならないように頑張るぞい。もし頑張れたら俺褒めてもらいたい誰かになという下心あります。えへへ〜。)

 

f:id:KOMEIDOIL:20200528061408p:plain

水瀬伊織に褒めて欲しい(釘宮病末期患者)

 

書泉ブックストアで以前から気になっていた「退屈なことはPythonにやらせよう」という書籍を購入たため簡単に日記形式でどんな内容なのか一章ごとに記述していきたいと思います。(一応Amazonのリンク置いておきます)

 

www.amazon.co.jp

 

「1章 Python入門」の感想

『圧倒的名著感・・・!!』

 

その言葉につきますね。ただ、プログラミング初心者の方は、「スッキリわかるJava基礎編」とかで色々プログラミングというものを最初に理解しておくのが個人的には良いと思います。(Pythonからやりたかったら、内容が堅くても良いなら「Python3入門ノート」、わかりやすく丁寧に感欲しかったら「みんなのPython」あたりかなと思います。異論反論はありそうですがこれらがスタンダードな気もします。)

 

ある程度書いてたけど実装がうまくできないとか、経験不足感が強いPython初心者の方には、強くお勧めします。

 

相当本の厚さがあるので、最後までやるのめっちゃ時間かかりそうだよな〜〜って思うんですが、実は以前にこちらの本のgithub(以下リンク)で写経して勉強したことがあったので、先も結構良さそうな雰囲気なのも知っています。(ネタバレ感)

github.com

 

買うか迷ってんだよな〜って人オライリーは神なのでコード公開してますので、そっちみてみてみてから決めてみてください。初心者ならはそこら辺の参考書より結構勉強になる気もします。

 

細かい話は下で語っていきたいとおもいます。

 

一章やったこと

  • 数学演算子の説明
  • Pythonの型について
  • 文字列の連結・複製(joinとかの話はしない)
  • 変数の値を格納する(箱の話)
  • 変数名と記法(ここ改めて言われると面白かった)
  • [実装1]名前と年齢を尋ねると返信するプログラム
  • 実装に使った関数の説明、コメント
  • column2 ;テキストと数字の等価性(文字と整数の間には壁があるけど、整数int型と浮動小数点float型が同じだよ〜ってこと)
  • 演習問題*10問 + 発展問題1問

面白かったところ

最初なので、内容的には知ってることだらけだったんですが、著者の文章がなかなか面白いです。

こんな記事書こうと思わせてくれるくらいには読み物として既に面白い

 

勉強したての初心者で忘れがちなこととしては、数学演算子にも順序があって、**つまり乗数が1番優先されて足し算引き算が一番後手っていうのはあるかなと思いました。要確認です。

 

特に面白かったところは変数名と記法の部分でPythonではキャメル記法とスネークケースの話(スネークケースという名前は出てこない)で、

 

 Python公式コーディングスタイルでを規定したPEP8によれば、こちら(スネークケース)のコーディングスタイルを推奨しています。どちらを使うかは好き嫌いの問題で、一貫していれば良いのですが、PEP8には、次のように書かれています。「愚かな一貫性は心の狭い小鬼である」*1

 

そうなんですよね。初心者はスネーク記法で書くべきだと思いますが、環境で変わるので変数の付け方は熟練者こそ気をつけたい(てきとーにしないように)って意識しないとなぁって話でした。(割と当然だけど大事だよね)

ちなみに、ラルフ・ワルド・エマーソンアメリカの思想家です。

 

(余談ですが、例外としてloggingライブラリがキャメル記法なのですが、それはJavaの影響があるかららしい。)

 

qiita.com

 

この段階で書かれてはいないけど、

クラス名はパスカルケース、定数名はアンダースコアで書こうというのがPEP8の方針だったと思います。

qiita.com

 まとめてくれてる人がいるので、一読しておくと良いかもしれないですね。

でも、「愚かな一貫性は心の狭い小鬼である」というくらいですから、他の人のコード見るときは心は広く持ちましょうね。(早速引用する奴)

 

演習問題はかなり瞬殺、簡単めですが初めてならここら辺のフォロー必要だなぁ。と思う次第で、良い感じの頭の体操にはなる感じではないですか。

 

ここをggるように発展問題では要求するんですが授業として丁寧な感じがします。

docs.python.org

 

この本は初心者にすごく親切で、割りとはじめてにこの本を勧めるのは悪い選択肢でないかもと思う次第でした。

続きを読む