こんにちは! ココナラでフリーのプログラマーとして活動しているmei_13と申します。
現在はプログラムの開発に加え、Pythonのレッスンも行っております。
今回からの新しいブログの題材は、私mei_13のPythonの書き方におけるこだわりをご紹介していくというものです。
Pythonは記法が柔軟で、いろいろな書き方ができる言語です。そのため、どの書き方が良いのだろうかと悩む方もいらっしゃると思います。
ここでは私があらゆる分野でのPythonを書いてきて、わかりやすく拡張性の高いと思う書き方をご紹介していきます。
もちろん、あくまで私の方法ですので、この書き方を広く推奨するものではありません。
さて、今回はforループについてです。
以下のプログラムを見てください。
tmplist = [2, 5, 4, 9]
for t in tmplist:
print(t)
Pythonを勉強した方ならだいたい動作がわかるのではないかと思いますが、私はこのようには書きません。それではどのように書くかと言うと、
tmplist = [2, 5, 4, 9]
for i in range(0, len(tmplist)):
t = tmplist[i]
print(t)
と書きます。
つまり配列の要素をそのまま取り出すのではなく、配列のインデックスから要素を取り出すということをしています。
ずいぶん冗長だなと思ったかもしれませんが、わざわざこのように書くのは理由があります。
① C言語との親和性が高い
C言語では配列の要素をそのまま取り出すforループは存在しません。必ずインデックスを用いて取り出すということをします。
② デバッグにおいて、配列のインデックスiを使う場面が多い
デバッグでは、ループの最初のときの値を調べたり、最後の値を調べたりといったことが頻出します。
③ 変数を明示的に書くことができる
今回はt = tmplist[i]としていますが、このように明示的に書くことで可読性を持たせています。
ちなみにenumerateを使うとスマートに書けるよといったご意見もありますが、あれは変数が明示的ではないため、私にとってはナンセンスです。
初学者にとっては覚えることも増えるので、まず使わない方が良いです。
④ 書き方が統一できる
forとrangeがセットという考えであれば、どのような書き方にも対処できます。
初学者が学ぶときにも学びやすいと考えています。
便利な書き方には落とし穴があります。一番重要なことは簡潔に書くことではなく、わかりやすく可読性を持たせるということです。
みなさんもわかりやすい書き方を追究してみましょう。
今よりももっとわかりやすいコードを書けるようになりたいという方は是非私のサービスまで!!