罗马数字转换器

2023-11-14



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

本转换器,以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完整代码
(如果从语句注释不能清楚作用,请评论区留言指教和探讨。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

罗马数字转换器 的相关文章

随机推荐

  • Android 隐藏虚拟按键,并且全屏

    隐藏虚拟按键 并且全屏 protected void hideBottomUIMenu 隐藏虚拟按键 并且全屏 if Build VERSION SDK INT gt 11 Build VERSION SDK INT lt 19 lower
  • 并发下sftp连接报错——com.jcraft.jsch.JSchException: connection is closed by foreign host

    当对单接口极限测试时 随着并发量上升 接口稳定性出现不稳定的情况 排查后台日志 发现报错在该接口调用sftp上传时出现问题 确切的是在初始化连接时失败 原因 系统SSH终端连接数配置过小 查看虚拟机该参数 该参数在 etc ssh sshd
  • 【操作系统】虚拟存储器概述

    存储管理分类 实存管理 分区 Partitioning 连续分配方式 包括固定分区 可变分区 分页 Paging 分段 Segmentation 段页式 Segmentation with paging 虚存管理 请求分页 Demand p
  • java 虚拟机类装载的原理、实现、以及应用

    一 引言 Java虚拟机 JVM 的类装载就是指 将包含在类文件中的字节码装载到JVM中 并使其成为JVM一部分的过程 JVM的类动态装载技术能够在运行时刻动态地加载或者替换系统的某些功能模块 而不影响系统其他功能模块的正常运行 本文将分析
  • python linux运行环境,Linux平台Python运行环境配置

    1 软件包管理工具 pip xiaokang localhost sudo yum install python2 pip 查看pip版本 xiaokang localhost pip V 大v pip 8 1 2 from usr lib
  • mysql8和5.7区别_MySQL8.0和MySQL 5的区别

    虽然MySQL8 0 x都出来了 自己一直使用 5 7的版本 对于新的版本今天抽了些时间来了解一下新的特性 而对于新的版本的了解往往都是从版本区别开始的 今天便算是作一个笔记吧 Oracle发布新版本的MySQL时 直接从5 7 x 跳到了
  • Redhat8.2 linux 忘记root密码破解方法 最详细!!!!!

    root密码破解方法 第一步 重启虚拟机 在开机标题界面 选择系统 按E进入 第二步 进入后在含LINUX开头结尾处加上 rd break 然后按CTRL X进入系统 第三步重新挂载根目录并给予读写权限 否则无法重置密码 第四步切换根目录位
  • TCP通信详解

    一 TCP简介 1 TCP介绍 a gt TCP协议 TCP协议 传输控制协议 英语 Transmission Control Protocol 缩写为 TCP 是一种面向连接的 可靠的 基于字节流的通信协议 1 面向连接 先连接 再通信
  • 疯壳-鸿蒙OS-HDF驱动框架

    一 简介 HDF HarmonyOS Driver Foundation 驱动框架 为驱动开发者提供驱动框架能力 包括驱动加载 驱动服务管理和驱动消息机制 旨在构建统一的驱动架构平台 为驱动开发者提供更精准 更高效的开发环境 力求做到一次开
  • 网络安全毕业设计题目大全

    文章目录 0 简介 1 如何选题 2 最新网安毕设选题 0 简介 毕业季马上就要开始了 不少同学询问学长管理选题开题类的问题 今天跟大家分享信息安全毕设选题 最新的信息安全 网络安全 专业毕设选题 难度适中 适合作为毕业设计 大家参考 学长
  • RuntimeError:shape ‘[4, 3, 85, 80, 80]‘ is invalid for input of size 537600

    在对yolov5进行剪枝训练时出现以下类型的错误 错误原因 1 使用自己 的数据集时 数据集与源代码的数据集的类别数不同 没有修改成对应的类别数 解决办法 修改cfg文件 把classes和filters进行修改 filters class
  • 启用电脑对远程服务器的访问,未启用对服务器的远程访问 win10家庭版

    未启用对服务器的远程访问 win10家庭版 卡饭网 本站整理 2019 07 09 这个问题比较常见小编整理的解决方法如下 方法一 用QQ远程协助对方电脑 需要QQ告诉对方右键单击计算机 这台电脑 点管理 打开计算机管理界面 选择本地用户和
  • git 工具使用--分支管理

    git 工具使用 分支管理 文章目录 git 工具使用 分支管理 理解分支 创建分支 切换分支 合并分支 删除分支 合并冲突 分支管理策略 分支策略 bug分支 删除临时分支 总结 理解分支 分支管理是Git的杀手级功能之一 分支 就是科幻
  • Ajax的核心技术XMLHttpRequest方法

    整个Ajax技术紧紧围绕在XMLHttpRequest对象的周围 Ajax整个技术的过程如下 XMLHttpRequest发送请求 在与服务器交互中 其readyState状态可以监听到服务器 的响应状态 当服务器的响应完成的时候 XMLH
  • 【UiBot】RPA流程机器人有几种类型?

    RPA Robotic Process Automation 机器人流程自动化 是指通过软件自动化方式 使各个行业中本来是人工操作计算机完成的业务 实现工作流程的自动化 RPA机器人的交互方式大致可分为两大主要类型 人机交互型和无人值守型
  • JS逆向获取网易云音乐评论并保存到mongodb数据库

    JS逆向获取网易云音乐评论 前言 这段时间 一直在研究JS逆向 今天小试牛刀一下 利用JS逆向技术获取网易云音乐评论 一 分析网页 其实网易云音乐评论的api很好找到的 我们通过F12进入到浏览器 chrome 的开发者模式 因为音乐的评论
  • 递推均值滤波算法---链式队列实现

    目录 为什么要写这篇 为什么要用队列实现 程序是怎么实现的 程序实现结果 程序代码 为什么要写这篇 仍记得当初写了一篇去除极值的均值滤波算法相关的博客 该算法用在了ADC采样上面 当初偶然看见还有一种递推均值滤波算法 用在了实时波形输出上面
  • F2FS – A New Flash File System for Mobile Devices – ELCE 2012

    本文转载至 http www cnx software com 2013 01 15 f2fs a new flash file system for mobile devices elce 2012 Joo Young Hwang pri
  • 计算机视觉方面的代码

    Jia Bin Huang同学收集了很多计算机视觉方面的代码 链接如下 https netfiles uiuc edu jbhuang1 www resources vision index html 这些代码很实用 可以让我们站在巨人的肩
  • 罗马数字转换器

    我的CSDN主页 My Python 学习个人备忘录 我的博文推荐 罗马数字转换器 整数转罗马数字 本转换器 以1 3999的正整数为限 看到CSDN 每日一练 python 题目 罗马数字转整数 的练习题目 就想写个 整数转罗马数字 的练