GW前半を使ってやっと読みきれた最近話題のPythonのhowto本。全部で600ページくらいあった。転職してからは、業務としてPythonを書く割合が多くなったということと、少し前にオライリー本のランキングで首位だったこともあって読んでみた。「日頃の業務で自動化できることはどんどんPythonで書いていこう!」って感じのツールがたくさん書いてある本かと思っていたけど、読んでみたらPythonの変数の型の説明から入って、ファイル入出力や正規表現、デバッグの仕方から最後は画像解析とかGUIの自動化まで広くカバーしていて結構参考になるところがあった。Pythonという言語を知らない人には、Pythonがどんな言語でどんなことができるツールをどんな感じで作ることができるのかを体系的に学んでいくことができるのでおススメ。(ただ、Pythonの強みである仮説検証とか機械学習のことについてはノータッチなので注意)ということで、本のレビューはここまでにして個人的に参考になったところを備忘録として少しだけ列挙していきたい。GW明けにこの辺を意識してこれまで書いてきたコードをrefactoringしていきたい感じ。値の初期化にはset.defaultを使うこれはdictの初期化に使えるらしく、これまでkeyが存在しない場合は以下のように書いていたif節がキレイに書き換えられるとのこと。0いつも、「もっと良い書き方ないかな〜」と思いながら書いていたこともあって結構嬉しい学び。正規表現にはraw文字列を渡すこの辺から正規表現の話が続いていくけどご勘弁。正規表現はraw文字で定義するのが良いらしい。いうのも、raw文字で指定するとエスケープする必要がなく可読性が上がるということから。短いと恩恵がわかりにくいかもしれないけど、超基本的な携帯電話のマッチパターンの正規表現をre.compile('\\d\\d\\d-\\d\\d\\d\\d-\\d\\d\\d\\d')こう書いていたものが、re.compile(r'\d\d\d-\d\d\d\d-\d\d\d\d')と書ける。エスケープするしないで結構ハマったことがあったので、raw文字で統一できるならありがたい。正規表現のグルーピングはgroups()でtupleが取れるこれは正規表現でマッチした後の後方参照の話。group()で添字ありでしか取れないと思ってたけどgroups()を使うとマッチしたところが取れるらしい。main_number'4567-8910'正規表現patternはVERBOSEオプションで綺麗に書ける正規表現を改行で区切ってキレイに書くオプションがあったらしい。これも可読性高めるために使えそう。re.VERBOSE)pathの扱いはos.pathライブラリが結構充実している自前でsplit('\')[-1]とかしてファイル名抜いていた時期もありました。os.path.join()とかos.path.split()とかがめちゃ便利なので活用していきたい。プログラマのミスはassert機能で検知しやすく事前にミスを防ぐにはコメントとtest書くくらいしかないと思っていたけど、assert機能を使うことで、「この場所にはこの値が来ないはず」みたいな状況を検知できるらしい。MILKassert文は、プログラムのデバッグやテストを行う際に使われます。文を使うことによって、プログラム実行時に変数が予期しない値を...結構なるほど感があったので引用。アサートはユーザの失敗ではなくプログラマーの失敗のための対策です。ファイルが見つからないとか、ユーザが間違ったデータを入力したといった回復可能なエラーは、assert文で検出するのではなく、例外を起こしましょう。ちなみに組み込み関数によってアサート機能の有無は指定することができるということで使い勝手も良さそう。printデバッグよりlogging機能pythonのloggingモジュールの話。debugger(pdb)とか使っていたけどこのlogging機能が結構便利そうだった。これまでprint文を書いたり消したりコメントアウトしたりとしていた面倒が一気に解消されそう。こちらも前述のアサート機能と似ていて組み込み関数をいじることでログの表示、非表示を指定することができるそう。いうことで、簡単ではあるが、自分のためになった部分を書いてみた。チェックシートか何かを作ってこの辺を意識しながらコードを書いていくつもりだが、ゆくゆくは自分のコードスタイルとして取り込んでいきたい。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。新着記事2020/01/032020年の目標と働き方について考えた話あけましておめでとうございます。tstomokiです。tstomokiです。...2018/12/02ココナラを使って副業を始めた話どうも、今回は副業をするための間口を広げた話。