罗马数字转换器(用罗马数字构造元素的值取模实现)

156 篇文章 4 订阅


罗马数字转换器(用罗马数字构造单位的值取模实现)


  刷CSDN无意间看到大佬用C实现的“罗马数字转换器(FreeCodeCamp)”,不懂C,读不透代码,文中有一句“向下取整”,我决定用取模和取整重写昨天的练习“罗马数字转换器|罗马数字生成器”。(我的相关博文“练习:罗马数字转整数”)

在这里插入图片描述


  1. 代码运行效果
  2. 完整代码

代码运行效果

在这里插入图片描述
在这里插入图片描述

输入整数排错效果

在这里插入图片描述


回首页

python完整代码
(如果从语句注释不能清楚作用,请评论区留言指教和探讨。🤝)
# 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')

回首页

我的HOT博:

推荐条件 点阅破千

相关文章:


上一篇:罗马数字转换器|罗马数字生成器
下一篇:


回首页

老齐漫画头像

精品文章:

来源:老齐教室


CSDN实用技巧博文:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦幻精灵_cq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值