admin管理员组

文章数量:1583925


  • 我的CSDN主页
  • My Python 学习个人备忘录
  • 我的博文推荐

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

本转换器,以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()

回首页

我的博文推荐:

  • 斐波那契数列(递归实现和for实现)(当前阅读1664)
  • 排序数组中查找元素的重复起止位置(当前阅读1200)
  • 柱状图中最大矩形(当前阅读1605)
  • 电话拨号键盘的字母组合(当前阅读1217)
  • 密码强度检测器(当前阅读1669)
  • 求列表平衡点(当前阅读1703)
  • 字符串统计(当前阅读1903)
  • 尼姆游戏(代码优化版)(当前阅读823)
  • Hot:尼姆游戏(聪明版首发)(当前阅读3241)
推荐条件 点阅破千

相关文章:

  • 练习:罗马数字转整数
  • 罗马数字转换器|罗马数字生成器
  • 罗马数字转换器(用罗马数字构造元素的值取模实现)

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


回首页

精品文章:

  • OPP三大特性:封装中的property
  • 通过内置对象理解python'
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法

来源:老齐教室


CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告

本文标签: 罗马数字生成器转换器