友達が「直木三十五って今だったら直木何になるんだろう」と言っていたので、プログラムはほとんどわからない初心者ながら、作りました。
def int2kanint(num) :
suji = ["","一","二","三","四","五","六","七","八","九"]
kugiri = ["","十","百","千"]
tani = ["","万","億","兆","京","垓","𥝱","穣","溝","澗","正","載","極","恒河沙","阿僧祇","那由他","不可思議","無量大数"]
num = list(map(int,list(str(num))))
kansuji = []
for k, v in zip(range(len(num)), reversed(num)) :
keta = []
keta.append(suji[v if v>1 else 0 if k%4 else v])
keta.append(kugiri[k%4 if v>0 else 0])
keta.append((tani[0 if k%4 else int(k/4) if any(list(reversed(num))[k:(k+4 if len(num)>=(k+4) else len(num))]) else 0]))
kansuji.append("".join(keta))
kansuji = "".join(reversed(kansuji))
return kansuji if kansuji else "零"
print("西暦何年の直樹三十五を知りたいですか")
x = input()
y = int(x) - 1891
print(str(x)+"年")
if (y >= 0) :
print("西暦"+str(x)+"年の直木三十五は『直木"+int2kanint(y)+"』です。")
else:
print("生まれてねえよ。")
コードの漢数字変換部はこちらを参考というか丸コピしました。ありがとうございます。
https://qiita.com/m_rafa0110/items/a4df610ab89e73ae1457
簡単に説明すると、直木三十五が入力した年数だと直木何になるのか表示してくれるものになります。
まだ直木三十五が生まれていない場合は"生まれてねえよ。"と表示します。
以上です。ありがとうございました。