[訂正] 3が付く数字の処理をうっかり忘れてたので修正(´・ω・`)。(「not n % 3 」を「n % 3 == 0 or str(n).count("3")」)
どれくらい「Python力」が進歩したかはかるため、約半年前やった『1から100までの数字で、3の倍数と3が付く数字だけアホになるスクリプト』を若干条件を変え、前回のコードを見ないで再挑戦してみた。("いち"とかの文字列は前のコードから流用)
3の倍数〜のたぐいは今更な感じではあるけれども(||゚Д゚)
いきます。
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:"じぃゅうぅ"} dog = {0:"ぅ...はかったな!シャアァ!!",5 :"ぉ...この化け物がぁっ!落ちろ!落ちろぉぉっ!",40:"よん...ジオン公国に栄光あれぇぇっ!!"} def san_aho_go_garma(): s = [] for n in range(1, 41): if not n % 15: s.append(num_to_str(funny, n) + dog[num_div(n, -1)]) elif not n % 5: s.append(num_to_str(normal, n) + dog[num_div(n, -1)]) elif n % 3 == 0 or str(n).count("3"): s.append(num_to_str(funny, n)) else: s.append(num_to_str(normal, n)) else: s[-1] = dog[40] return "\n".join(s) def num_div(n, p): return int(str(n)[p]) def num_to_str(dict, n): if n <= 9: return dict[n] if 10 <= n <= 19: return dict[10] + dict[num_div(n, -1)] if 20 <= n <= 39: return dict[num_div(n, -2)] + dict[10] + dict[num_div(n, -1)] if 40 <= n: return dict[num_div(n, -2)] + dict[10] if __name__ == "__main__": print san_aho_go_garma()
あまり進歩してないっぽいなぁ(´・ω・`)
退化してるかも(つдT)
いちおう結果
いち に しゃぁ〜ん よん ごぉ...この化け物がぁっ!落ちろ!落ちろぉぉっ! ろおぉ〜うく しち はち きゅぅ〜 じゅうぅ...はかったな!シャアァ!! じゅういち じぃゅうぅぬぅい〜 じぃゅうぅしゃぁ〜ん じゅうよん じぃゅうぅごぉぉ...この化け物がぁっ!落ちろ!落ちろぉぉっ! じゅうろく じゅうしち じぃゅうぅふはぁ〜ち じゅうきゅう にじゅうぅ...はかったな!シャアァ!! ぬぅい〜じぃゅうぅぅい〜っち にじゅうに ぬぅい〜じぃゅうぅしゃぁ〜ん ぬぅい〜じぃゅうぅしぃ〜 にじゅうごぉ...この化け物がぁっ!落ちろ!落ちろぉぉっ! にじゅうろく ぬぅい〜じぃゅうぅすうぃ〜ち にじゅうはち にじゅうきゅう しゃぁ〜んじぃゅうぅぅ...はかったな!シャアァ!! しゃぁ〜んじぃゅうぅぅい〜っち しゃぁ〜んじぃゅうぅぬぅい〜 しゃぁ〜んじぃゅうぅしゃぁ〜ん しゃぁ〜んじぃゅうぅしぃ〜 さんじゅうごぉ...この化け物がぁっ!落ちろ!落ちろぉぉっ! しゃぁ〜んじぃゅうぅろおぉ〜うく しゃぁ〜んじぃゅうぅすうぃ〜ち しゃぁ〜んじぃゅうぅふはぁ〜ち しゃぁ〜んじぃゅうぅきゅぅ〜 よん...ジオン公国に栄光あれぇぇっ!!