何かを書き留める何か

数学や読んだ本について書く何かです。最近は社会人として生き残りの術を学ぶ日々です。

おめでたい感じがする干支計算プログラミング

今年の干支は何なのか、ここ数年気にしなくなっていたが、今年は丑年である。 正確には辛丑である。

ja.wikipedia.org

お正月なので、簡単に計算できる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]}です。")

Pythonintは全角数字を入れても数値として解釈してくれるが、ドキュメントにはUnicodeのNdをそう解釈するとは書かれていない。 ११११を渡すと1111と解釈してくれるので恐らくint()はNdをよしなに解釈してくれるのだろうが、果たしてどうなのだろう。