読者です 読者をやめる 読者になる 読者になる

@ゲー単走部

ローグライク雑記。変愚蛮怒、DCSSなど。

Python 勉強 ~5桁の数字を漢数字に変換してみる~

つくってみた。5桁なのは、6桁以上だと規則性が変わってむずそうだから。
というか桁数なんて際限がないしとりあえず5桁で。

# 1-99999 の5桁の数字を漢数字に直す

def char_number(number):
    if not 1 <= number <= 99999:
        return "Error"

    answer = ""

    dict_number = { 1:'一', 2:'二', 3:'三', 4:'四', 5:'五', 6:'六', 7:'七', 8:'八', 9:'九', 0:'' }
    base_stlist = ['万', '千', '百', '十', '一']

    number_list = [int(n) for n in str(number)] # 各桁の数字をリストに
    stlist = [dict_number[i] for i in number_list] # 各桁の数字を漢数字に

    z = zip(stlist, base_stlist)
    for index, one_tuple in enumerate(z):
        st1, st2 = one_tuple

        if st1 == '': # 0の桁は飛ばす
            continue

        if index == 0:
            answer += st1 + st2
        elif 1 <= index <= 3:
            if st1 == '一': # 一百、一十とは言わない 一千は言うこともあるが、言わなくてもよい
                answer += st2
            else:
                answer += st1 + st2
        else: # 一の位
            answer += st1

    return answer