Python3.5实现的罗马数字转换成整数功能示例


Posted in Python onFebruary 25, 2019

本文实例讲述了Python3.5实现的罗马数字转换成整数功能。分享给大家供大家参考,具体如下:

问题概述:

给定一个罗马数字 ,将罗马数字转换成整数。

如罗马数字I,II,III,IV,V分别代表数字 1, 2, 3, 4, 51,2,3,4,5。

首先要来了解一下罗马数字表示法,基本字符有 7 个:I、V、X、L、C、D、M,分别表示 1、5、10、50、100、500、1000。

在构成数字的时候,有下列规则:

1、相同的数字连写,所表示的数等于这些数字相加得到的数,如:III = 3;

2、小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数, 如:VIII = 8;XII = 12;

3、小的数字,(限于Ⅰ、X和C)在大的数字的左边,所表示的数等于大数减小数得到的数,如:IV = 4;IX = 9;

4、正常使用时,连写的数字重复不得超过三次。

输入格式

输入一个罗马数字字符串,其对应的数字为 s (1≤s≤3999)。

输出格式

输出对应的整数 s。

以下是详细代码:

# -*- coding:utf-8 -*-
#! python3
chart = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
strs = input()
result = 0
omit = -1 # omit为需省略的字符位
if strs in chart:
  print(chart[strs])
else:
  for i in range(len(strs)): # 遍历字符串的每一位:(0,len-1)
    if i == omit: # 如果无需省略i
      pass
    elif i <= len(strs)-2: # 如果还没有遍历到最后一位:(len-1-1)
      if chart[strs[i]] < chart[strs[i+1]]: # 如果前一位对应值小于后一位的
        result += chart[strs[i+1]] - chart[strs[i]] # 进行减操作
        omit = i+1 # 省略下一位字符
      else:
        result += chart[strs[i]]
    else: # 遍历到最后一位
      result += chart[strs[i]]
  print(result)

测试运行结果:

Python3.5实现的罗马数字转换成整数功能示例

如有更好更简洁的想法,请留言

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python切片知识解析
Mar 06 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
Jul 08 Python
基于python的图片修复程序(实现水印去除)
Jun 04 Python
python 对类的成员函数开启线程的方法
Jan 22 Python
Python3列表内置方法大全及示例代码小结
May 10 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
Pandas实现dataframe和np.array的相互转换
Nov 30 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
May 22 Python
手把手教你将Flask应用封装成Docker服务的实现
Aug 19 Python
Python+腾讯云服务器实现每日自动健康打卡
Dec 06 Python
python 使用tkinter与messagebox写界面和弹窗
Mar 20 Python
Python爬虫beautifulsoup4常用的解析方法总结
Feb 25 #Python
python3实现指定目录下文件sha256及文件大小统计
Feb 25 #Python
Python常用爬虫代码总结方便查询
Feb 25 #Python
Python使用paramiko操作linux的方法讲解
Feb 25 #Python
详解Django中CBV(Class Base Views)模型源码分析
Feb 25 #Python
Python判断对象是否相等及eq函数的讲解
Feb 25 #Python
详解django中url路由配置及渲染方式
Feb 25 #Python
You might like
php获取mysql版本的几种方法小结
2008/03/25 PHP
php下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
PHP 编程的 5个良好习惯
2009/02/20 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
使用JS读秒使用示例
2013/09/21 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
深度解读vue-resize的具体用法
2020/07/08 Javascript
使用Python神器对付12306变态验证码
2016/01/05 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
Python3运算符常见用法分析
2020/02/14 Python
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
中专生毕业自我鉴定
2013/11/01 职场文书
业务代表的岗位职责
2013/11/16 职场文书
项目经理的岗位职责
2013/11/23 职场文书
简单的大学生自我鉴定
2014/02/18 职场文书
年级组长自我鉴定
2014/02/22 职场文书
考察现实表现材料
2014/05/19 职场文书
政府采购方案
2014/06/12 职场文书
应届大学生自荐书
2014/06/17 职场文书
理财计划书
2014/08/14 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android
GPU服务器的多用户配置方法
2022/07/07 Servers
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript