Phinlodaのいつか読んだ本

実際に読んでみた本の寸評・奇評(笑)

退屈なことはPythonにやらせよう

先日、電子書籍だと持ち運ばなくていいから…、というような話を書いたような気がしますが、実は英語版はWebで全部公開されていることを今頃知りました。(Automate the Boring Stuff with Python)

私は昔、誤訳に泣かされたという経験もあって原文派なので、英文があるのなら、そっちを見た方がいいかな。重い本を持ち歩かなくて済むし。ちなみに、和書の正誤表は Web で公開されています。そちらも併用するといいでしょう。

ところで、この誤訳はまだ正誤表に出ていませんでした(2017年9月8日)。

nameに格納された値が'名前'でなければ
(p.42)

'名前'ではなく、'あなたの名前'ですね。原文は 'your name' となっています。それなら「君の名は」と訳して欲しいです。

誤訳の話をしましたが、和訳するときに国による違いについて言及、対応するとか、もともとの内容がおかしいことを指摘するとか、そのようなメリットもありますから、一概に原書の方がいいとは限りません。この本も、例えば電話番号のマッチングのような処理は日本の形式に対応するコードも紹介してくれています。親切です。

さて、この本ですが、Python について大雑把にチュートリアル的な内容が書いてあり、進めるに従って実践的、具体的な処理に移っていきます。Webページの処理や、Excel、PDF 形式のデータの扱いとか出てきます。ただし、内容は既に何かプログラミング言語が使える人が読むことを想定しているようです。基本的な概念についての説明は殆どありません。例えば、

Python では、2 + 2 を式といい、最も基本的なプログラミング命令となっています。
(p.4)

これで「式」とは何か分かる人はいないでしょう。例えば、2 * 3 は式なのかどうか、これだけでは判断できません。そもそもプログラミングの経験がなければ「プログラミング命令」(programming instruction) の意味が分かりません。C言語を理解するときには式(expression) と文(statement) の区別が必要になりますが、もしC言語から入った人なら、Python の式とC言語の式は同じなのか、違うのか、ということが気になるかもしれません。

でも、そういうことは気にしないのが Python の上達のコツかもしれません。使えるようになってから気にすればいいのです。

気になったのはここ。

この例ではmessagの文字列は短いのですが、何百万文字の長さになったとしても、プログラムは1秒以内に完了実行するでしょう。正規表現を使って電話番号を検索するプログラムも1秒以内に実行完了しますが、正規表現を使えばこういったプログラムをもっとすばやく書くことができます。
(p.158)

何の変哲もない普通の内容のように見えます。正規表現を使ったらややこしいマッチングのプログラムを自作しなくても済む、というだけのこと。ただ、本当にそれが言いたかったのかというのが、何かひっかかります。正規表現は、案外複雑な条件が高速で処理できるという特徴を持っています。実際、ここに出てくるプログラムはどちらが速いのか、それがどうしても気になります。わざわざ1秒なんて数字を出してくるのも気になります。実際、そんなにかからないような気もするのですが。

ちなみに、日本の場合、電話番号に「-」(長音)を使ったりする人がいますよね(笑)。


退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
Al Sweigart 著
相川 愛三 翻訳
オライリージャパン
ISBN: 978-4873117782