# coding: utf-8
def int_to_Roman(integer):
'''整数(1~3999)转罗马数字'''
units = {1000: 'M', 900: 'CM', 500: 'D', 400: 'CD', 100: 'C', 90: 'XC', 50: 'L', 40: 'XL', 10: 'X', 9: 'IX', 5: 'V', 4: 'IV', 1: 'I'} #罗马数字构造元素字典。
model = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]#罗马数字单位
Roman = [] #初始化罗马数字字符列表。
for value in model:
if integer%value < integer:
if units.get(value) in ('M', 'C', 'X', 'I'):
Roman.append(units.get(value)*int(integer/value))
else:
Roman.append(units.get(value))
integer = integer % value #
return ''.join(Roman) #返回罗马数字字符列表拼接字符串。
print(f'\n\n\n{"整数(1~3999)转罗马数字":_^35}\n')
while True:
try:
integer = int(input(f'\n\n{" ":4}输入整数:'))
if integer < 1 or integer > 3999:
print(f'\n\n\n{"请输入1~3999的整数!":.^35}\n\n\n')
else:
break
except Exception as error:
print(f'\n\n\n{error}\n{"输入错误!请重试。":.^33}\n\n')
print(f'\n\n\n{" ":4}整数{integer}转罗马数字是:\
{int_to_Roman(integer)}\n\n\n{"The End":_^42}\n')
上一篇: 罗马数字转换器|罗马数字生成器
下一篇:
来源:老齐教室