昨日やった『3の倍数と3が付く数字だけアホになり、5の倍数だけガルマっぽくなるスクリプトをPythonでやってみた - 牌語備忘録 - pygo』が間違ってた上にコードが長いので、いくらか短くしてみた。
今回はランバ・ラルで。
python
#!/usr/local/bin/python # *-# -*- coding: utf-8 -*- #3の倍数と3が付く数字だけアホになり、5の倍数だけランバ・ラルっぽくなるスクリプト normal = {0:"",1:"いち",2:"に",3:"さん",4:"よん",5:"ご", 6:"ろく",7:"しち",8:"はち",9:"きゅう",10:"じゅう"} funny = {0:"",1:"ぅい〜っち",2:"ぬぅい〜",3:"しゃぁ〜ん",4:"しぃ〜",5:"ごぉ", 6:"ろおぉ〜うく",7:"すうぃ〜ち",8:"ふはぁ〜ち",9:"きゅぅ〜",10:"じぃゅうぅ"} ral = {0:"ぅ...うぬぼれるなよ、お前の力で勝ったのではない。", 5:"ぉう、思いきりのいいパイロットだな、手ごわい。しかし...", 40:"よんじゅ...見ておくがいい。戦いで敗れるということはこういうことだぁぁぁっ!!"} def san_aho_go_ral(): li = [] for n in range(1, 40): if n % 3 == 0 or str(n).count("3"): dict = funny else: dict = normal word = num_to_str(dict, n) if not n % 5: word += ral[num_div(n, -1)] li.append(word) else: li.append(ral[40]) return "\n".join(li) def num_div(n, p): return int(str(n)[p]) def num_div(n, p): return int(str(n)[p]) def num_to_str(dict, n): s = dict[n if n < 10 else 10] if 10 <= n: s += dict[num_div(n, -1)] if 20 <= n: s = dict[num_div(n, -2)] + s return s if __name__ == "__main__": print san_aho_go_ral()
少しすっきりした(゚Д゚)
結果
(ラルが言ってるイメージでお読みください。)
いち に しゃぁ〜ん よん ごぉう、思いきりのいいパイロットだな、手ごわい。しかし... ろおぉ〜うく しち はち きゅぅ〜 じゅうぅ...うぬぼれるなよ、お前の力で勝ったのではない。 じゅういち じぃゅうぅぬぅい〜 じぃゅうぅしゃぁ〜ん じゅうよん じぃゅうぅごぉぉう、思いきりのいいパイロットだな、手ごわい。しかし... じゅうろく じゅうしち じぃゅうぅふはぁ〜ち じゅうきゅう にじゅうぅ...うぬぼれるなよ、お前の力で勝ったのではない。 ぬぅい〜じぃゅうぅぅい〜っち にじゅうに ぬぅい〜じぃゅうぅしゃぁ〜ん ぬぅい〜じぃゅうぅしぃ〜 にじゅうごぉう、思いきりのいいパイロットだな、手ごわい。しかし... にじゅうろく ぬぅい〜じぃゅうぅすうぃ〜ち にじゅうはち にじゅうきゅう しゃぁ〜んじぃゅうぅぅ...うぬぼれるなよ、お前の力で勝ったのではない。 しゃぁ〜んじぃゅうぅぅい〜っち しゃぁ〜んじぃゅうぅぬぅい〜 しゃぁ〜んじぃゅうぅしゃぁ〜ん しゃぁ〜んじぃゅうぅしぃ〜 しゃぁ〜んじぃゅうぅごぉぉう、思いきりのいいパイロットだな、手ごわい。しかし... しゃぁ〜んじぃゅうぅろおぉ〜うく しゃぁ〜んじぃゅうぅすうぃ〜ち しゃぁ〜んじぃゅうぅふはぁ〜ち しゃぁ〜んじぃゅうぅきゅぅ〜 よんじゅ...見ておくがいい。戦いで敗れるということはこういうことだぁぁぁっ!!