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重试装饰器示例
Feb 11 Python
简单理解Python中基于生成器的状态机
Apr 13 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 Python
使用DataFrame删除行和列的实例讲解
Apr 08 Python
Python实现的括号匹配判断功能示例
Aug 25 Python
python3 tcp的粘包现象和解决办法解析
Dec 09 Python
Numpy(Pandas)删除全为零的列的方法
Sep 11 Python
Python操作dict时避免出现KeyError的几种解决方法
Sep 20 Python
Python求区间正整数内所有素数之和的方法实例
Oct 13 Python
基于python制作简易版学生信息管理系统
Apr 20 Python
C3 线性化算法与 MRO之Python中的多继承
Oct 05 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
May 30 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 adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
PHP强制转化的形式整理
2020/05/22 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
使用JQuery在线制作ppt并在线演示源码特效
2015/09/08 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
JS实现打字游戏
2019/12/17 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
Python随机读取文件实现实例
2017/05/25 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
python 解决selenium 中的 .clear()方法失效问题
2020/09/01 Python
django使用多个数据库的方法实例
2021/03/04 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
生活部的活动方案
2014/08/19 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis