380.Pythonのマルとバツ(1)
初回:2024/09/04
前回、Python ネタをやったので、ここは初心に帰って、Pythonネタを続けたいと思います。
P子「きっと、三日坊主ね」※1
週一コラムなので、三週和尚と呼んでください。
P子「結局、3回というのは変わらないのね」
1.『どこが良くてどこがダメ? Pythonのマルとバツ』
今回のネタ元です。
≪参考資料1≫
https://xtech.nikkei.com/atcl/nxt/column/18/02899/
どこが良くてどこがダメ? Pythonのマルとバツ
立山 秀利
日経クロステック トップ > ソフト開発
2024.08.26 ~ 2024.08.30
私は『バツ』の部分が、どうしても体が受け付けないので好きにはなれないんですが、こうやって『マル』の部分もピックアップしていけば、少しはマシになるかも知れません。
P子「でもラズパイ使うときは、すべてPythonでしょ?」
最近は、ラズパイだけではなく、パソコンでも動かす必要性があるので、ほとんどがPythonです。ですが、好きで使っているのではなく楽に組めたりライブラリが便利だったりするだけで、実行時エラーなんか出ると、ちゃぶ台をひっくり返したくなります。
P子「星一徹のちゃぶ台返しは、1回だけよ」※2
ここで書かれている『マル』と『バツ』ですが、サクッとみてみましょう。
第1回 Pythonのここがマル、インデントのおかげで可読性が高くリストも柔軟
第2回 多彩なデータ形式を持つPython、「リスト内包表記」も大きな魅力
第3回 Pythonなら文字列への値の埋め込みもラクラク、便利な演算子もある
第4回 Pythonのここがバツ、インデントを使うがゆえに生じる不自由さなど
第5回 Pythonでもついに複数条件の列挙が可能に、match文を使ってみよう
面白いのは、第1回で『インデント』はマルなのですが、第4回で『インデント』はバツの例を挙げていることです。これには感心しました。私自身はPythonの『インデントの強制』はバツなのですが、世間ではあれが良いという人もいます。実際、人によってそれぞれ見方や考え方が異なるので、同じ機能でもマルと考える人もバツと考える人もいると思います。なので、私がバツだと言っても『いやマルでしょ』という人は必ずいるし、逆に私のお気に入りの機能を『それは失敗作だ』と思う人もいます。
2.私個人のマルとバツ
一応、私の感想を述べておきます。
最初に言っておくと、私の『バツ』に『いや違うだろ、そんなことは無い』と反論されても、私が『バツ』と思っているだけなので、その機能が有用かどうかは利用者個人が判断すればよいと思います。
P子「批判票は受け付けません...宣言ね」
第1回 Pythonのここがマル、インデントのおかげで可読性が高くリストも柔軟
→ インデント強制は拒否反応の第一位です。
説明で階層が深い場合にインデントを適切に行わないと可読性が悪くなるって言ってますが、Python自体が定数もなく型もない言語なので、適当に書けばとことん可読性が悪くなります。インデントの可読性の悪さより、変数の使いまわし(違う型をいれたり違う目的で使ったり)の方がメンテナンス性がはるかに落ちます。
第2回 多彩なデータ形式を持つPython、「リスト内包表記」も大きな魅力
→ 慣れるまでは大変でしたが、一度慣れれば便利ですね。個人的には『マル』です。
ただ、複雑にしようと思えばいくらでもできるので使用する時は自制心を持って簡潔に書ける部分だけに留めておきましょう。
第3回 Pythonなら文字列への値の埋め込みもラクラク、便利な演算子もある
→ 「f文字列」(フォーマット文字列)という仕組みは非常に便利です。個人的には『マル』です。
→ 複数の変数に「まとめて代入」できる のも『マル』です。特に関数の戻り値に複数返せるのは便利です。
第4回 Pythonのここがバツ、インデントを使うがゆえに生じる不自由さなど
→ やはり、インデントの強制は『バツ』です。
書かれているように、if文をコメントアウトしたいとかもありますが、テスト的な処理を入れる場合、java などではインデントを無視して入れます。つまりソースを見ただけで、テスト的な処理の場所が判るのと、テキスト検索で見つけやすいとかメリットが色々あります。また、Webアプリで bottleやFlaskを使う際に、htmlファイルにPythonを埋め込むときには、インデントが使えないので if や for でend という構文が必要になります。こういう所に弊害が現れてきていると思います。
第5回 Pythonでもついに複数条件の列挙が可能に、match文を使ってみよう
→ 「switch文」がないのは『バツ』でしたが、「match文」が出来たんですね。知らなかった。ただ、match ~ case って、素直に switch ~ case にすればよいのに、そういう所が『バツ』です。match って、正規表現をイメージしてしまいますから。
P子「一応、マルの評価もあるのね。すべてに難癖付けるのかと思ってたわよ」
そんな、クレーマー的な事はしませんよ...少ししか。
3.まとめ
今回も、乗っかりコラムですが、乗っかり元は参考になるでしょう。
一応、今回のタイトルに、(1) を付けた手前、次回は私自身が考える『マル』と『バツ』を上げてみたいと思います。
P子「バツばっかりになるんじゃないでしょうね」
最初、タイトルを『Pythonの●と×(1)』にしようかと思っていました。
P子「つまり、黒丸ってことね」
でも、良い面に目を向けることも大切なので、まじめにマル機能も取り上げたいと思います。
P子「期待しないで待ってるわ」
ほな、さいなら
======= <<注釈>>=======
※1 P子「きっと、三日坊主ね」
P子とは、私があこがれているツンデレPythonの仮想女性の心の声です。
※2 P子「星一徹のちゃぶ台返しは、1回だけよ」
https://news.infoseek.co.jp/article/magmix_145234/#goog_rewarded
『巨人の星』一徹の「ちゃぶ台返し」 実は「そんなにやってない」 放送は1回だけ?
マグミクス / 2023年3月22日 15時10分