牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

プログラム言語を覚えたいときの練習問題やってみた(その1)

元ネタの新しくプログラミング言語を覚えたいときに行うべき10の練習問題 | IDEA*IDEAに影響され、とりあえず練習問題1をpythonでやってみた。

#!/usr/local/bin/python
# *-# -*- coding: utf-8 -*-

# 1から100までを表示して、数に『3』のあるときと『3の倍数』のときは、数の読み方がおかしくなるスクリプト

def main():
    uplist = ["","ぅい〜っち","ぬぅい〜","しゃぁ〜ん",
              "よぅぉ〜ん","ごぉ〜ぅ","ろぅぉ〜く","すうぃ〜ち",
              "ふはぁ〜ち","きゅぅ〜","じぃゅ〜", "ひぃゃ〜く"]
    nomlist = ["","いち","に","さん","よん","ご","ろく",
               "しち","はち","きゅう","じゅう","ひゃく"]
    
    for num in range(1,101):
        tmpstr = str(num)
        if num % 3 == 0 or tmpstr.count("3"):
            numlist = uplist
        else:
            numlist = nomlist
        resultstr = numlist[int(tmpstr[-1])]
        if 10 <= num <= 99:
            if tmpstr[-2] == "1":
                tenstr = ""
            else:
                tenstr = numlist[int(tmpstr[-2])]
            resultstr = tenstr + numlist[10] + resultstr
        if 100 <= num:
            resultstr = numlist[11] + resultstr

        print resultstr

if __name__ == "__main__":
    main()

出力結果

いち
に
しゃぁ〜ん
よん
ご
ろぅぉ〜く
しち
はち
きゅぅ〜
じゅう
じゅういち
じぃゅ〜ぬぅい〜
じぃゅ〜しゃぁ〜ん
じゅうよん
じぃゅ〜ごぉ〜ぅ
じゅうろく
じゅうしち
じぃゅ〜ふはぁ〜ち
じゅうきゅう
にじゅう
ぬぅい〜じぃゅ〜ぅい〜っち
にじゅうに
ぬぅい〜じぃゅ〜しゃぁ〜ん
ぬぅい〜じぃゅ〜よぅぉ〜ん
にじゅうご
にじゅうろく
ぬぅい〜じぃゅ〜すうぃ〜ち
にじゅうはち
にじゅうきゅう
しゃぁ〜んじぃゅ〜
しゃぁ〜んじぃゅ〜ぅい〜っち
しゃぁ〜んじぃゅ〜ぬぅい〜
しゃぁ〜んじぃゅ〜しゃぁ〜ん
しゃぁ〜んじぃゅ〜よぅぉ〜ん
しゃぁ〜んじぃゅ〜ごぉ〜ぅ
しゃぁ〜んじぃゅ〜ろぅぉ〜く
しゃぁ〜んじぃゅ〜すうぃ〜ち
しゃぁ〜んじぃゅ〜ふはぁ〜ち
しゃぁ〜んじぃゅ〜きゅぅ〜
よんじゅう
よんじゅういち
よぅぉ〜んじぃゅ〜ぬぅい〜
よぅぉ〜んじぃゅ〜しゃぁ〜ん
よんじゅうよん
よぅぉ〜んじぃゅ〜ごぉ〜ぅ
よんじゅうろく
よんじゅうしち
よぅぉ〜んじぃゅ〜ふはぁ〜ち
よんじゅうきゅう
ごじゅう
ごぉ〜ぅじぃゅ〜ぅい〜っち
ごじゅうに
ごぉ〜ぅじぃゅ〜しゃぁ〜ん
ごぉ〜ぅじぃゅ〜よぅぉ〜ん
ごじゅうご
ごじゅうろく
ごぉ〜ぅじぃゅ〜すうぃ〜ち
ごじゅうはち
ごじゅうきゅう
ろぅぉ〜くじぃゅ〜
ろくじゅういち
ろくじゅうに
ろぅぉ〜くじぃゅ〜しゃぁ〜ん
ろくじゅうよん
ろくじゅうご
ろぅぉ〜くじぃゅ〜ろぅぉ〜く
ろくじゅうしち
ろくじゅうはち
ろぅぉ〜くじぃゅ〜きゅぅ〜
しちじゅう
しちじゅういち
すうぃ〜ちじぃゅ〜ぬぅい〜
すうぃ〜ちじぃゅ〜しゃぁ〜ん
しちじゅうよん
すうぃ〜ちじぃゅ〜ごぉ〜ぅ
しちじゅうろく
しちじゅうしち
すうぃ〜ちじぃゅ〜ふはぁ〜ち
しちじゅうきゅう
はちじゅう
ふはぁ〜ちじぃゅ〜ぅい〜っち
はちじゅうに
ふはぁ〜ちじぃゅ〜しゃぁ〜ん
ふはぁ〜ちじぃゅ〜よぅぉ〜ん
はちじゅうご
はちじゅうろく
ふはぁ〜ちじぃゅ〜すうぃ〜ち
はちじゅうはち
はちじゅうきゅう
きゅぅ〜じぃゅ〜
きゅうじゅういち
きゅうじゅうに
きゅぅ〜じぃゅ〜しゃぁ〜ん
きゅうじゅうよん
きゅうじゅうご
きゅぅ〜じぃゅ〜ろぅぉ〜く
きゅうじゅうしち
きゅうじゅうはち
きゅぅ〜じぃゅ〜きゅぅ〜
ひゃく


ちなみに、初めはもっと簡単に

# 練習問題その01
# 1から100までを表示し、3のときだけアホになるスクリプト

for i in range(1,101):
    print str(i).replace("3", "しゃ〜ん")

とか簡単にやってみたけど、元ネタのトラックバックRubyで書かれた人がいて前記のものに書き直してみた。

自分は入門者レベルなので、ハイレベルなPython使いの人が書いたの見てみたいなぁ。