Python中如何将获取到的月份数字转换为罗马数字
月份数字转罗马数字实现方案
因为公历月份取值固定为1~12,不需要编写适配任意整数的通用罗马数字转换逻辑,直接使用索引对齐的映射表是最简单、出错率最低的方案,代码执行效率也最高。
你可以直接在现有获取月份的代码基础上补充如下逻辑:
import datetime # 列表第0位留空占位,让列表索引和月份数字一一对应,省去偏移计算 roman_month_map = [ "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII" ] date = datetime.date.today() month = date.month # 直接按索引取值即可得到对应罗马数字 current_roman_month = roman_month_map[month]
按照这个逻辑,你给出的转换示例4 => IV可以正常输出,其他月份的对应关系如下:
- 1月:I
- 2月:II
- 3月:III
- 4月:IV
- 5月:V
- 6月:VI
- 7月:VII
- 8月:VIII
- 9月:IX
- 10月:X
- 11月:XI
- 12月:XII
如果后续有转换更大数值罗马数字的需求,再单独编写通用转换函数即可,针对月份场景用映射表完全够用。
内容的提问来源于stack exchange,提问作者Mar_TO
相关产品推荐
相关产品推荐

