[Python]ダサいコードを書き直し、半分のサイズにする


このエントリーをはてなブックマークに追加

ここからちょっと広告です。

広告は以上です。

こういうgifアニメを作ったのです。


Rocket_anime

最初は配列とかfor文とか使って、短く書こうと思いました。
しかし、プログラミングに詳しい人も詳しくない人も何を言ってるかわからないと思いますが、配列の中に配列を入れることができず、何を試してエラーが出て……

むなしく1時間2時間3時間と過ぎていき……

結果、悔し涙に頬を濡らしながら、格好良くまとめるのは諦めて、ダサすぎますが全部普通に書くというコードにしました。
どれだけダサかったか? こんな感じです。上から順番に1行ずつ実行されるだけ、というレベルのダサさ。

https://github.com/kotoripiyopiyo/python/issues/7#issue-653340988(コード部分45行)

モヤモヤを抱えながら寝て、起きて、しばらくすると、友人のCHEEBOWさんから、

「同じ処理をしている部分を関数にまとめてみるとよいのかも」

という、天啓のようなアドバイスをいただきまして。

関数にまとめる!!!
すっかり忘れてた! そういえばそんなこと、教科書の最初の方に書いてあった!

今までなんとかして配列の中に配列を入れてどうにかしようとしていたけど、そうじゃなくて、引数つきの関数を作って、そこにfor文で数字を入れていったらいいじゃない(説明下手すぎますが、本当にこういう天啓だったのです……)!

というわけで、関数を作る方針ではじめたら、スラスラと書き直せまして!

オリジナル関数、あと配列作成時のリスト内包表記、さらに画像をndarrayせず直接配列にブチ込むことにも成功し、無事まあまあ格好よく書き直すことができました。

https://github.com/kotoripiyopiyo/python/issues/7#issuecomment-656075570(コード部分22行。なんと半分以下に!)

Python20200713

たぶんもっと格好良くして、下手したら5行くらいで収まっちゃうような書き方もあるのかもしれませんが、まずは僕のレベルではこのくらいで。

いやー良かった良かった。これでまた教科書を10行ほど進めることができます……CHEEBOWさん神だったわ……

さて、教科書の「Tellus×TechAcademy初心者向け Tellus 学習コース」もマジで終盤の終盤。しっかり走り切りたいと思います。

p,s,thx!
Pythonリスト内包表記の使い方 | note.nkmk.me
Tellus×TechAcademy初心者向け Tellus 学習コース

Ads by Google

コメント

コメントは、Twitterやはてブに、以下のボタンから本記事のアドレスつきでツイート/ブクマしていただくと、上にあるzenbackのウィジェットに反映されます。
  このエントリーをはてなブックマークに追加
または同ウィジェット内のFacebookコメントでお願いしますー。

Facebookのシェアは……されても誰だかわからないのですが、シェア自体は嬉しいので、下にボタンを置かせていただきます。よろしくお願いします。