罗马数字转换器|罗马数字生成器

156 篇文章 3 订阅


罗马数字转换器(整数转罗马数字)

本转换器,以1~3999的正整数为限

  看到CSDN“每日一练”(python)题目“罗马数字转整数”的练习题目,就想写个“整数转罗马数字”的练习。

  1. 题目
  2. 罗马数字构造元素
  3. 罗马数字生成器
  4. 罗马数字转换器
  5. 完整代码

练习题目

在这里插入图片描述


回首页

罗马数字构造元素

在这里插入图片描述

代码

# coding: utf-8


def Roman_units():
    '''罗马数字单位'''
    units = [
        ['M', 1000], 
        ['CM', 900], 
        ['D', 500], 
        ['CD', 400], 
        ['C', 100], 
        ['XC', 90], 
        ['L', 50], 
        ['XL', 40], 
        ['X', 10], 
        ['IX', 9],
        ['V', 5], 
        ['IV', 4],
        ['I', 1]
                    ] #罗马数字单位列表。
    print(f'\n\n\n{"罗马数字构造元素":_^34}\n\n\n')
    print(f'{" ":8}{"字符":^10}|{"整数值":^10}\n')
    for Roman_s, value in units:
        print(f'{" ":12}{Roman_s:8}|{value:>8}\n')
    input(f'\n\n{"The End":_^42}\n')

Roman_units()

回首页

罗马数字转换器

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

整数输入排错效果

代码
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')

在这里插入图片描述


  输入错误,报错重新输入,直到输入正确正数。


代码

# coding: utf-8


def integer_to_Roman(integer):
    '''整数转罗马数字'''
    units = [
        ['M', 1000], 
        ['CM', 900], 
        ['D', 500], 
        ['CD', 400], 
        ['C', 100], 
        ['XC', 90], 
        ['L', 50], 
        ['XL', 40], 
        ['X', 10], 
        ['IX', 9],
        ['V', 5], 
        ['IV', 4],
        ['I', 1]
                    ] #罗马数字单位列表。
    Roman = [] #初始化罗马数字字符列表。
    k = 1
    while integer > 0:
        #print(f'\n\n整数:{integer}\n循环{k}次。\n\n{Roman}')
        k += 1
        for Roman_s, value in units:
            if integer >= value:
                Roman.append(Roman_s)
                integer -= value
                break
            if integer < 1:
                break
    return ''.join(Roman)

print(f'\n\n\n{"整数转罗马数字":_^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}转罗马数字是:\
{integer_to_Roman(integer)}\n\n\n{"The End":_^42}\n')

回首页

罗马数字生成器

在这里插入图片描述

在这里插入图片描述

代码

# coding: utf-8


def show_Roman(n):
    s = f"罗马数字(1~{n})"
    print(f'\n\n{s:_^38}\n\n\n')
    for i in range(1, n + 1):
        print(f'{i:>3}:{integer_to_Roman(i):>8}', end = ' ')
        if (i)%3 == 0: print()
    print(f'\n\n\n{"The End":_^42}\n')


show_Roman(100)

回首页

python完整代码
(如果从语句注释不能清楚作用,请评论区留言指教和探讨。🤝)
# coding: utf-8


def integer_to_Roman(integer):
    '''整数转罗马数字'''
    units = [
        ['M', 1000], 
        ['CM', 900], 
        ['D', 500], 
        ['CD', 400], 
        ['C', 100], 
        ['XC', 90], 
        ['L', 50], 
        ['XL', 40], 
        ['X', 10], 
        ['IX', 9],
        ['V', 5], 
        ['IV', 4],
        ['I', 1]
                    ] #罗马数字单位列表。
    Roman = [] #初始化罗马数字字符列表。
    k = 1
    while integer > 0:
        #print(f'\n\n整数:{integer}\n循环{k}次。\n\n{Roman}')
        k += 1
        for Roman_s, value in units:
            if integer >= value:
                Roman.append(Roman_s)
                integer -= value
                break
            if integer < 1:
                break
    return ''.join(Roman)

print(f'\n\n\n{"整数转罗马数字":_^35}\n')
integer = int(input(f'\n\n{" ":4}输入整数:'))
print(f'\n\n\n{" ":4}整数{integer}转罗马数字是:\
{integer_to_Roman(integer)}\n\n\n{"The End":_^42}\n')



def show_Roman(n):
    s = f"罗马数字(1~{n})"
    print(f'\n\n{s:_^38}\n\n\n')
    for i in range(1, n + 1):
        print(f'{i:>3}:{integer_to_Roman(i):>8}', end = ' ')
        if (i)%3 == 0: print()
    print(f'\n\n\n{"The End":_^42}\n')


show_Roman(100)
input()


def Roman_units():
    '''罗马数字单位'''
    units = [
        ['M', 1000], 
        ['CM', 900], 
        ['D', 500], 
        ['CD', 400], 
        ['C', 100], 
        ['XC', 90], 
        ['L', 50], 
        ['XL', 40], 
        ['X', 10], 
        ['IX', 9],
        ['V', 5], 
        ['IV', 4],
        ['I', 1]
                    ] #罗马数字单位列表。
    print(f'\n\n\n{"罗马数字构造元素":_^34}\n\n\n')
    print(f'{" ":8}{"字符":^10}|{"整数值":^10}\n')
    for Roman_s, value in units:
        print(f'{" ":12}{Roman_s:8}|{value:>8}\n')
    input(f'\n\n{"The End":_^42}\n')

Roman_units()

回首页

我的博文推荐:

推荐条件 点阅破千

相关文章:


上一篇:练习:罗马数字转整数
下一篇:


回首页

老齐漫画头像

精品文章:

来源:老齐教室


CSDN实用技巧博文:


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦幻精灵_cq

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

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

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

打赏作者

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

抵扣说明:

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

余额充值