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中的from..import绝对导入语句
Jun 21 Python
Python实现购物程序思路及代码
Jul 24 Python
python itchat实现微信好友头像拼接图的示例代码
Aug 14 Python
python去掉空白行的多种实现代码
Mar 19 Python
详解django2中关于时间处理策略
Mar 06 Python
Python是什么 Python的用处
May 26 Python
Python使用sys.exc_info()方法获取异常信息
Jul 23 Python
通俗易懂了解Python装饰器原理
Sep 17 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
Oct 23 Python
pandas按条件筛选数据的实现
Feb 20 Python
解决python存数据库速度太慢的问题
Apr 23 Python
python数字图像处理数据类型及颜色空间转换
Jun 28 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
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
PHP制作用户注册系统
2015/10/23 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
PHP抽象类与接口的区别实例详解
2019/05/09 PHP
Mootools 1.2教程 类(一)
2009/09/15 Javascript
JavaScript 定义function的三种方式小结
2009/10/16 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
jquery中ajax学习笔记一
2011/10/16 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
Golang与python线程详解及简单实例
2017/04/27 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
使用pandas读取文件的实现
2019/07/31 Python
利用CSS3实现平移动画效果示例代码
2016/10/12 HTML / CSS
Html5嵌入钉钉的实现示例
2020/06/04 HTML / CSS
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
中学生旷课检讨书模板
2014/10/08 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
营业员岗位职责
2015/02/11 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
大队委员竞选稿
2015/11/20 职场文书
SQL Server基本使用和简单的CRUD操作
2021/04/05 SQL Server
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技