今年の干支は何なのか、ここ数年気にしなくなっていたが、今年は丑年である。 正確には辛丑である。
お正月なので、簡単に計算できるPythonスクリプトを書いた。
HEAVENLY_STEMS = { 0: "庚", 1: "辛", 2: "壬", 3: "癸", 4: "甲", 5: "乙", 6: "丙", 7: "丁", 8: "戊", 9: "己", } EARTHLY_BRANCHES = { 0: "申", 1: "酉", 2: "戌", 3: "亥", 4: "子", 5: "丑", 6: "寅", 7: "卯", 8: "辰", 9: "巳", 10: "午", 11: "未", } try: year = int(input("生まれた年を数字で入力してください:")) except ValueError: print("数字でっつってんだろぉぉ?") else: stem = year % 10 branch = year % 12 print(f"あなたの干支は{HEAVENLY_STEMS[stem]}{EARTHLY_BRANCHES[branch]}です。")
Pythonのint
は全角数字を入れても数値として解釈してくれるが、ドキュメントにはUnicodeのNdをそう解釈するとは書かれていない。
११११
を渡すと1111
と解釈してくれるので恐らくint()
はNdをよしなに解釈してくれるのだろうが、果たしてどうなのだろう。