LoginSignup
3
3

More than 1 year has passed since last update.

「きれいなPythonプログラミング」を読んで

Last updated at Posted at 2022-07-31

はじめに

書籍「きれいなPythonプログラミング」を読みました。非常に参考にり、そして「感動」した書籍でしたので、面白かったトピックを記載します

作者

Al Sweigart(アル・スウェイガート)さんという方で、この書籍以外にも「退屈なことはPythonにやらせよう」なども書いている方です。また、「きれいなPythonプログラミング」も含め無料の英語版をクリエイティブ・コモンズ・ライセンスのもとwww.inventwithpython.comで公開されています。

基本的なことは理解したが、次は何をしようと考えている人向け

原題は「Python で基本的なことを超えて(Beyond the Basic Stuff with Python)」となっており、書籍の「はじめに」の部分にもありましたが、pythonのチュートリアルを読み終えて、次は何をしようと考えている人向けです。また、ある程度経験を積まれた方にも「自分の手法の確認」などのためにも良いと思います。

速攻で内容を理解したい人へ

各章の最後にある「まとめ」を読むと、大体内容がわかります。

印象に残った記事

コードフォーマットを整える(3章より)

black:フォーマット成型ツールです。文字間隔などを一定のルール、ほぼPEP8にそって修正してくれます。
vs-codeで使えsaveするたびに成型することもできます
->vs-codeでの設定方法は「blackで始める妥協のないPythonコードフォーマッティング」を参照

Pythonのよくある落とし穴(8章より)

むかし自分もハマったことがある記事が満載でした。

ループ時にリストの追加・削除をしない(8.1章より)

むかし、これをやってしまいデバッグが大変だったことを思い出しました。
この記事の結びが
Pythonの中心的な開発者であるレイモンドヘッテンガーの話として
Q.「ループ中にリストを変更するためのベスト プラクティスは何ですか?」
A.「しないでください。」
が印象的でした。

copy.copy()copy.deepcopy()を使う(8.2章より)

そう、なぜか知らないが変数の値がいつのまにか変わっている事件はよくありました。
「デフォルトの引数に可変値を使用しない」も同様の現象を引き起こします。
そして、ここで検証用に使われているツールも魅力的です。

文字列連結で文字列をつくらない(8.4章より)

私はpandasで、これと同様の原因で大幅なレスポンス悪化に悩みました。

cProfile(13.2章より)

python以外でもそうですが、レスポンスで引っ掛かるのは
短い命令が非常に大量にループして実行されている時などで見つけるのが大変だったことを思い出します。
このツールがあれば楽勝です

おすすめの読み方

私は、すでに知っていることが書いてありそうな章でも(書籍にもそう書いてありますが)飛ばさずにじっくり読むことをお勧めします。
「へーー」がいっぱいです。また、「プロジェクトの実践」(14章)では、コードを実際に書きますが、これも手間でも実際に自分でコードを打ち込むことをお勧めします。

ほかにも

ここに記載したことは、ほんの一例です。ほかにも「質問の仕方」、「わかりやすいネーミング」、「enumerate」、「f-string」、「switch文の代わりに辞書を使う」、「git」、「プリントデバッグ」・・・興味を引く記事が満載です。また、多くの有用な参照記事へのリンクも魅力的です。

参考

マイナビ books きれいなPythonプログラミング
きれいなPythonプログラミング(パイソニックなコードを書こう)を読んでみた

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3