技術にゃんこの混ぜご飯

関東某所でITエンジニア生活を送るブログ主がチラ裏メモを放り込む場所

【Python100本ノック】01. 「パタトクカシーー」でプリンシプル3.8対称性を持たせる

早速原理原則について語る日が来るとは(σ・ω・)チェケラッ

カテゴリ:Python100本ノック
sipaによるPixabayからの画像 (蛇に遭遇したサバトラ猫

github.com

パトカーが作れるならばタクシーも作れる

何せ交互に組み合わせているだけですので。

奇数番目の文字列を取得するメソッドがあるなら、偶数番目の文字列を取得するメソッドもある筈。そうです対称性です。

「追加」メソッドがあれば、対になる「削除」メソッドを作成します。
プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則

またもっと広い意味で捉えるなら、「パタトクカシーー」を作るメソッドがあるなら、分解するメソッドがあったっていい訳です。これは02で実際に作成していますね。

拗音が入った場合

noranuko13.hatenadiary.jp

はい。そうですね。こちらも改修が必要になりますね。

元の単語が複数考えられるパターンでは、まず元の単語のパターンを全て洗い出す必要があります。

その上で組み合わせた単語が辞書内の単語に存在するかなども確認しないといけなくなります。厄介ですね。

モジュール・メソッド名は変える

あくまで奇数番目の単語を取得するメソッドをodd、偶数番目の単語を取得するメソッドをevenとしてそのまま使用すると、拗音ありの場合おかしなことになるんですよね。例えば「ブシャラモシジ」の「シャモジ」は2,3,5,7文字目です。

この場合のメソッド名はfirst, secondが正しいかもしれません。意味があるのは単語を組み合わせる時の順番でしかないので、あくまで1つ目2つ目と区別するのが良さそうです。

「ひとつとびぶったい」用のモジュールかクラスを作って、そこに追加する感じになりそうです。