罗马数字转换器

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(使用前将#替换为@)

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

  • 类型错误:float() 参数必须是字符串或数字,而不是“列表”python

    我的 Python 有问题 这是我的代码 def calcola a input b float a 0 split c float a 0 split d float a 0 split e float a 0 split j float
  • 将一维数组转换为下三角矩阵

    我想将一维数组转换为较低的零对角矩阵 同时保留所有数字 我知道numpy tril函数 但它用零替换了一些元素 我需要扩展矩阵以包含所有原始数字 例如 10 20 40 46 33 14 12 46 52 30 59 18 11 22 30
  • 对于相同的查询,MySQL Workbench 比 Python 快得多

    MySQL Workbench 中的以下查询需要 0 156 秒才能完成 SELECT date time minute price id FROM minute prices WHERE contract id 673 AND TIMES
  • 如何在Python代码中查找列号

    简短问题 当按上述方式调用函数时 我可以找到行号here https stackoverflow com questions 3056048 filename and line number of python script 同样 如何找到
  • 张量流和线程

    下面是来自 Tensorflow 网站的简单 mnist 教程 即单层 softmax 我尝试通过多线程训练步骤对其进行扩展 from tensorflow examples tutorials mnist import input dat
  • reStructuredText:README.rst 未在 PyPI 上解析

    我有一个托管在 Github 和 PyPI 上的 Python 项目 在 Github 上 https github com sloria TextBlob blob master README rst https github com s
  • 返回上个月的日期时间对象

    如果 timedelta 在它的构造函数中有一个月份参数就好了 那么最简单的方法是什么 EDIT 正如下面指出的那样 我并没有认真考虑这一点 我真正想要的是上个月的任何一天 因为最终我只会获取年份和月份 因此 给定一个日期时间对象 返回的最
  • Pandas:将 pytz.FixedOffset 应用于系列

    我有一个带有timestamp列看起来像这样 0 2020 01 26 05 00 00 08 00 1 2020 01 26 06 00 00 08 00 Name timestamp dtype datetime64 ns pytz F
  • uri 警告中缺少端口:使用 Python OpenCV cv2.VideoCapture() 打开文件时出错

    当我尝试流式传输 ipcam 时 出现了如下所示的错误 tcp 000000000048c640 uri 中缺少端口 警告 打开文件时出错 build opencv modules videoio src cap ffmpeg impl h
  • 为什么 __instancecheck__ 没有被调用?

    我有以下 python3 代码 class BaseTypeClass type def new cls name bases namespace kwd result type new cls name bases namespace p
  • Jupyter Notebook 中的深色模式绘图 - Python

    我正在使用 Jupyter Notebook 目前正在使用 JupyterThemes 的深色日光主题 我注意到我的绘图不是处于黑暗模式 并且文本仍然是黑色并且在日光照射的背景上无法读取 JupyterThemes 的自述文件建议在 ipy
  • 具有多个主键的 SQLAlchemy 不会自动设置任何

    我有一个简单的表 class test Base tablename test id Column Integer primary key True title Column String def init self title self
  • 如何分析组合的 python 和 c 代码

    我有一个由多个 python 脚本组成的应用程序 其中一些脚本正在调用 C 代码 该应用程序现在的运行速度比以前慢得多 因此我想对其进行分析以查看问题所在 是否有工具 软件包或只是一种分析此类应用程序的方法 有一个工具可以将 python
  • 更换壳牌管道[重复]

    这个问题在这里已经有答案了 在 subprocess 模块的 Python 2 7 文档中 我找到了以下片段 p1 Popen dmesg stdout PIPE p2 Popen grep hda stdin p1 stdout stdo
  • Python 导入非常慢 - Anaconda python 2.7

    我的 python import 语句变得非常慢 我使用 Anaconda 包在本地运行 python 2 7 导入模块后 我编写的代码运行得非常快 似乎只是导入需要很长时间 例如 我使用以下代码运行了一个 tester py 文件 imp
  • 在 Python 中访问 argparse 的参数值

    我正在尝试为我的程序设置一些简单的标志参数 但无法弄清楚如何访问它们 我有 argparser parser argparse ArgumentParser description Simple PostScript Interpreter
  • 在 HDF5 (PyTables) 中存储 numpy 稀疏矩阵

    我在使用 PyTables 存储 numpy csr matrix 时遇到问题 我收到此错误 TypeError objects of type csr matrix are not supported in this context so
  • 沿轴 0 重复 scipy csr 稀疏矩阵

    我想重复 scipy csr 稀疏矩阵的行 但是当我尝试调用 numpy 的重复方法时 它只是将稀疏矩阵视为对象 并且只会将其作为 ndarray 中的对象重复 我浏览了文档 但找不到任何实用程序来重复 scipy csr 稀疏矩阵的行 我
  • 如何从 nltk 下载器中删除数据/模型?

    我在 python3 NLTK 中安装了一些 NLTK 包 通过nltk download 尝试过它们 但不需要它们 现在想删除它们 我怎样才能删除例如包large grammars来自我的 NLTK 安装 我不想删除完整的 NLTK 安装
  • 在python中对列表列表执行行总和和列总和

    我想用python计算矩阵的行和和列和 但是 由于信息安全要求 我无法使用任何外部库 因此 为了创建矩阵 我使用了列表列表 如下所示 matrix 0 for x in range 5 for y in range 5 for pos in

随机推荐

  • 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 题目 罗马数字转整数 的练习题目 就想写个 整数转罗马数字 的练