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