2018年12月30日日曜日

「入門者のPython」を読む

「入門者のPython」〜プログラムを作りながら基本を学ぶ〜
立山秀利著 講談社 BLUE BACKS

PythonはAIの流行と共にはやりのプログラミング言語のようで、その入門書は数多く出ている。初心者としては、どれを見たらいいのか、あるいはネット上でもPython入門と銘打って数多くのサイトがあるので、どれにしたらいいのか迷うところだ。

多くの入門書を見比べたわけではないが、たまたま図書館にあった本書は、入門書としては非常にわかりやすく丁寧に書かれており、プログラム開発の心得も書かれていて良書だと思う。「プログラムを作りながら」という方法は、具体的に動くものを作りながらなので、言語の一部しか学ぶことができないが、それでも入門としては良い方法だと思う。これをきっかけに他の部分も覚えていけばいいのであって、そのための本やサイトはたくさんある。

本書では、プログラム開発環境は、WindowsにAnacondaをインストール、Spyderを使ってプログラミングすることを前提として書かれている。そのため、他の開発環境だと、本に書かれている内容と少し異なる動作となることを承知した上で読む必要がある。

私はRaspberry Pi上のRASPBIANにあるThonny Python IDEを使って本書のプログラムを実際に動かしてみた。
すると、11章からのスクレイピングのプログラムで、BeautifulSoup4モジュールをインポートするコード import bs4でエラーとなる。
事前にインストールが必要なようで、しかも、Python2と3で異なるようだ。
今はPython3を使っているので、それに対応したインストールが必要らしい。このことは以下のサイトからわかった。

「いるかのボックス」
http://irukanobox.blogspot.com/2016/06/raspberry-pipython.html

これに従ってインストールした後は、エラーが出なくなった。

作例1は、たくさんある画像ファイルを、その作成年月日ごとに、年月日の名前で作ったホルダーに移動してまとめるもの。
これはページ数も多く、非常に丁寧に説明されている。このプログラムがどれほどの有効性があるのかは別として、(個人的にあまり役に立ちそうにないプログラム例は、熱心に見る気がしなくなることもあるので。)本に書かれているようにプログラムを動かしていくと、ちゃんとわかるようになっている。

作例2はWebページ上のデータを自動で取得する「スクレイピング」である。
HTMLの知識がないとできないが、まったく知らない人でもできるように、HTMLの基礎を必要最小限のところから説明している。中には「これはとにかくこういうものだと、やみくもに覚える。」という部分が出てくるが、仕方のないところだろう。
それにしても、そういった、理由もなく覚える部分が多くなると、なかなか理解が進んでいかない。前述のようにエラーでも出ようものならそこでストップしてしまう。

一通り読んだが、こういったことができるんだな、程度で、具体的に何かをしようとすると、かなりハードルが高いようだ。他の入門書を読むためのきっかけと考えたほうがよさそうだ。
ちなみに気象庁のサイトから、当日、前日のアメダスデータを読み込んでみたが、うまくいかなかった。過去のデータであれば、なんとか読めて、CSVファイルにすることができたが、気象庁のサイトにはダウンロードのメニューもあるので、あまり実用性はない。

作例3のCSVファイルのデータ解析もしかり。ページ数も少なく、こんな関数もありますよ、といった紹介程度になっている。

作例2、3は付け足し程度と考えても、作例1の説明は実に丁寧で、Python入門書としてはとてもよく書かれていると思う。プログラムの基礎がしっかり書かれているし、他のPythonの本を読むときに非常に役に立つ本だと思う。

(同様のスタイルで書かれた筆者の著書としては、「入門者のJavaScript」~作りながら学ぶWebプログラミング~ 講談社 BLUE BACKS もある。)

INA219にはまる

 INA219電流センサーの互換品を買う。 互換品 オリジナル Adafruit Industries(エイダフルート) 商品レビューで評判が良くない。不良品が多すぎるという。 とはいえ全体の購入者数からすれば一部の人の評価だろうから、まあ大丈夫だろうと買う。 オリジナルの値段の...