Python と Excel と SQLite3 #01
Pythonはとても便利で役に立ちます
これから述べる内容の結論は、上のとおりです。しかし、わたしは最近までは、このように考えていませんでした。そこで、最初に「いままでの考え」を述べます。
まわりに流れてくる情報を見ていると、「Python はとても便利だ」という意見がとても多いです。しかし、「では、実際にはどのような場面で便利なんだろうか」と考えると、なかなかピンときませんでした。
子どもたちに対して Pythonは有効か
その理由は、自分自身が「教育の場」にいることが、大きな原因だと思います。教育の場においては、もちろんプログラミングは重要です。しかし、Pythonは、スクラッチやビスケット、マイクロビットなどの「子どもでもどんどん参加できるプログラミング言語」ではありません。インストールしてから実際に使えるようになるまで、けっこう手順が必要です。使えるようになったとしても、「多くの子どもが興味を持つようなもの」をすぐに提供することは、難しいと思います。
教務的な仕事に対して Python は有効か
一方、子どもに対する教育を離れて、いわゆる事務的な作業、(成績をつけたり、出席を管理したり、さまざまなデータを操作したりするような作業)を考えると、やはり、データ処理の主流は、Excel のような表計算ソフトと、=sum() や =rank() などの「関数」、そして、大規模でない VBA のマクロプログラムあたりが主流で、あまり Python の出番はないように感じていました。
とくに、Excel を用いたデータ処理については、「本質的に困難な部分」があって、「関数」も「VBAによるプログラム」も、あまり大規模にすることができません。
この「本質的に困難な部分」とは、ほかならぬ先生方のヒューマンエラーが原因です。つまり、「先生と呼ばれる人たちは、自分たちで勝手に(よくわからないのに)、エクセルの表などを追加したり削除したり、一部を「ななめ」にズラしたりして、計算式等を壊してしまう」傾向があります。
したがって、あまり大規模なシステムを作ってしまうと、このような先生方のちょっとしたミスが原因で、「どこに、どんなミスがあるのかわからないような不具合」が生じる可能性があります。「すいません。このエクセル表が動かなくなっちゃったんですけど」と言って持ってくるものは、多くの場合、このような状態です。(いわゆるバグ取りの作業を行うことになりますが、「こんな、ぐちゃぐちゃのファイルは見たくない」という場合が、ほとんどです)
そもそも Python は、どんなことができるのか
これもインターネット等で大量に流れてくる情報の「受け売り」ですが、たとえば、「機械学習ができます」とか、「統計的な処理やグラフ化が簡単にできます」とか、「デスクトップアプリケーションをつくることもできます」とか、「インターネットに公開するホームページを作成することができます」とか、いろいろなことが言われています。
Python でなくても、いいじゃない?
でも、それらのことについて、「わたしのような、学校の先生が、Python を学んで、実際に、すごく役に立ったなあと思えるような仕事が、はたしてできるのだろうか」という疑問を持っていました。
Python は、たしかにいろいろ便利なことがある。
だけど、Python でなくても、それはできるじゃないか。
という疑問です。
「いろいろなことをやってみて、なにか、ものすごく便利な部分が見つけられないだろうか」と考えていて、試行錯誤を繰り返しました。そして、やっぱり Python はものすごく便利だったという結論に至りました。それをこれから書いていこうと思っています。
プログラミングの実際も書きますので御容赦を
ただ、書くにあたって、実際にプログラミングを行うとしたら、こういうふうになるというノウハウ的な部分も書きます。したがって、コンピュータが苦手な人にとっては、チンプンカンプンな部分も多数あると思います。私個人の意見としては、「外部から評論するだけで、実際に自分自身が作業をしないのでは、本質的な理解にはつながらない」と考えているので、やはり、やるとしたら(そして書くとしたら)、泥臭い部分まできちんと書きたいと考えていますので、すいませんが、御容赦ください。
では、次回から、具体的なことを書きます。