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正则获取、过滤或者替换HTML标签的方法
Jan 28 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
May 16 Python
Python实现文件信息进行合并实例代码
Jan 17 Python
人生苦短我用python python如何快速入门?
Mar 12 Python
python抽取指定url页面的title方法
May 11 Python
python微元法计算函数曲线长度的方法
Nov 08 Python
Python和Go语言的区别总结
Feb 20 Python
python实现socket+threading处理多连接的方法
Jul 23 Python
使用OpenCV实现仿射变换—平移功能
Aug 29 Python
python实现logistic分类算法代码
Feb 28 Python
pandas分组聚合详解
Apr 10 Python
Python爬虫requests库多种用法实例
May 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
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
php 地区分类排序算法
2013/07/01 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
PHP 快速排序算法详解
2014/11/10 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
jQuery 判断页面元素是否存在的代码
2009/08/14 Javascript
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
javascript常用对话框小集
2013/09/13 Javascript
Query中click(),bind(),live(),delegate()的区别
2013/11/19 Javascript
javascript类型转换使用方法
2014/02/08 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
如何快速解决JS或Jquery ajax异步跨域的问题
2018/01/08 jQuery
javascript、php关键字搜索函数的使用方法
2018/05/29 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
[51:34]Ti4主赛事胜者组 DK vs EG 2
2014/07/19 DOTA
python实现停车管理系统
2018/11/30 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
python打包成so文件过程解析
2019/09/28 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
JVM是一个编译程序还是解释程序
2012/09/11 面试题
公路绿化方案
2014/05/12 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
我们的节日元宵活动方案
2014/08/23 职场文书
资源环境与城乡规划管理专业自荐书
2014/09/26 职场文书
汽车转让协议书范本
2014/12/07 职场文书
中学教师个人总结
2015/02/10 职场文书
证婚人婚礼致辞
2015/07/28 职场文书
利用python做数据拟合详情
2021/11/17 Python