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 自动提交和抓取网页
Jul 13 Python
Python发送email的3种方法
Apr 28 Python
关于Django显示时间你应该知道的一些问题
Dec 25 Python
python中kmeans聚类实现代码
Feb 23 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
Jun 13 Python
python try except返回异常的信息字符串代码实例
Aug 15 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
最小二乘法及其python实现详解
Feb 24 Python
python生成大写32位uuid代码
Mar 03 Python
vue常用指令代码实例总结
Mar 16 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
Dec 14 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 函数中使用static的说明
2012/06/01 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
基于jQuery的表格操作插件
2010/04/22 Javascript
ajax上传时参数提交不更新等相关问题
2012/12/11 Javascript
javascript折半查找详解
2015/01/26 Javascript
JS去除iframe滚动条的方法
2015/04/01 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
2017/05/11 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
JavaScript使用setTimeout实现倒计时效果
2021/02/19 Javascript
[03:03]2014DOTA2国际邀请赛 EG战队专访
2014/07/12 DOTA
python发送HTTP请求的方法小结
2015/07/08 Python
bpython 功能强大的Python shell
2016/02/16 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
2018/07/18 Python
Python中按值来获取指定的键
2019/03/04 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
Python基于pillow库实现生成图片水印
2020/09/14 Python
python中pop()函数的语法与实例
2020/12/01 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
2013/01/09 HTML / CSS
怎样拟定创业计划书
2014/05/01 职场文书
公司踏青活动方案
2014/08/16 职场文书
国庆节活动总结
2014/08/26 职场文书
公司租房协议书范本
2014/10/08 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
导游词之沈阳清昭陵
2019/12/28 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang