今年の干支は何なのか、ここ数年気にしなくなっていたが、今年は丑年である。 正確には辛丑である。
お正月なので、簡単に計算できる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をよしなに解釈してくれるのだろうが、果たしてどうなのだろう。