本当に0からPythonのプログラミングが「できる」までに その3

Python
スポンサーリンク
スポンサーリンク

決まった回数のループをPythonで扱うには?

着手8日目 ループに触れてみる

Pythonでループを扱う場合、range()関数を使うのですが、ループに関しては、エクセルの関数(IFとかSUMとか)では使用しないもので、考えとして新しかったため、本当にゼロからプログラミングを始めた私には、どう便利なのかわかりにくかったです。

実際のプログラムの書き方

for i range(10):
    print(i)

という感じです。

for 変数 range(): という形で書きます。

ループの便利さとは?

一言でずばり、面倒な記述を減らせる!ということです。

たとえば、Pythonで、

a = 1 + 1
a = a + 1
・・・

こんな記述を100回繰り返すのは、誰でも面倒なのがわかります。

これを省略できる手段がループ(range関数)です。ちなみにエクセル上では、X,Yの2次元で数字が表されているため、Y方向(表で言うと下向き)に計算するのは、コピペなりフィルを使って、エクセルが自動で行ってくれます。そのため、見かけ上は100行の計算を一瞬で、たとえば合計のSUM等を行ってくれますが、Python等でゼロからプログラミングするときは、これを○○回繰り返すということを表記してあげなければいけません。

実際、この理解がついてくるまで、ループして何が嬉しいのか?言い換えれば、記述を減らせることが、何に役立つのか?がわかりませんでした。

ループこそプログラムの真髄 プログラムを作成することはサボることなり!

会社員、公務員、そのほか学生、たとえニートであろうと、毎日、毎日、何かしらの繰り返しがあると思います。それが決まった時間や決まった状況でなくても、何かしらの繰り返しがあると思います。

日常の中で、この繰り返しを自動で誰かが行ってくれればいいのにということ、裏返せば効率的に自分が怠けられたら良いのにと思うことが、プログラミングの真髄だと思っています。

じゃあPythonのループを使って何ができるのか?

実際に当時ゼロから始めて考えたことですが、PCの中のデータを整理したいということでした。

PCで面倒なのがデータ整理ですが、自分の場合、大分類 → 小分類 → 日付+ファイル名 で整理していました。具体的に例を出すと、

果物 →( りんごフォルダ バナナフォルダ みかんフォルダ ) → 20180101_長野県産 20180201_フィリピン産

肉 →(牛肉フォルダ 豚肉フォルダ 鶏肉フォルダ) → 20180101_国産 20180101_アメリカ産

みたいな感じです(実際にこんなフォルダは作ってないので例としてみてください)

この場合の問題点は、分類分けはできているけど、時系列で置き換えたら、2018年1月はどれだけのファイルがあるの?という問題があります。Windowsの場合、フォルダの検索で、例えば20180101だけなら、検索結果として含まれるものだけを絞り込むことはできます。しかし、それを1月でいえば31回繰り返し、そのたびにコピペなに切り取ってフォルダから取り出すのは時間のかかることです。さらに、問題として、同じファイル名(例で言えば、同じ日付の同じ産地)があったりして、20180101_牛肉_アメリカ産みたいに名前を変える必要が出てきました。これはさっきよりも厄介な話で、ひとつのフォルダに数百くらいのデータが入っていたため、恐ろしい繰り返しを行わなければ出来ない作業でした。

Pythonを使えば楽に名前の変更が出来る

しかも人間がやるよりも確実で速い。

Pythonを使ってプログラムを作成する ことを目標に、ゼロから自主学習してきたので、少し早いかとは思いましたが、この、「自動でフォルダ名を日付の後に付けて、ファイル名を変更してくれるプログラム」を作ることにしました。

実際にここからプログラム作成の着手となっていきます。

次回以降は、ループについてもう少し詳しく触れつつ、ソースを張りながらどうやって作成していったか?ということを書きたいと思います。

実際には、whileやタプル等の概念も出てきますので、そのあたりの着手と絡めながら書いてきたいと思います。

あとがき

プログラミングは、実際に何か作る → 動かす → 動いたかどうか調べる → 改善すべきか?完成か? のサイクルの繰り返しが一番身につきます。

プログラミングに限らず、勉強でも、スポーツでも、芸術でも、仕事でもほかの趣味でも、これは同じではないかと思います。

ただし、プログラミングの場合は、上で書いたサイクルが、最小で回っていくので、一度はじめられれば、少しずつでも前に進んでいきます。そして、繰り返して自分でトライアンドエラーを繰り返すことで、論理的な考えが自然と身についていくものだと思っています。

特にPythonの面白さは、楽に実行できるということだと思いますので、このあたりの楽しさも伝えられたらと思います。

タイトルとURLをコピーしました