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 相关文章推荐
详解Django中的过滤器
Jul 16 Python
分享Python开发中要注意的十个小贴士
Aug 30 Python
Python使用numpy实现BP神经网络
Mar 10 Python
python实战之实现excel读取、统计、写入的示例讲解
May 02 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
Mar 27 Python
Python面向对象进阶学习
May 21 Python
Python正则表达式匹配和提取IP地址
Jun 06 Python
Python通用函数实现数组计算的方法
Jun 13 Python
PowerBI和Python关于数据分析的对比
Jul 11 Python
Python基于yield遍历多个可迭代对象
Mar 12 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
Apr 08 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
Apr 22 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
杏林同学录(一)
2006/10/09 PHP
用php实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
php中{}大括号是什么意思
2013/12/01 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
jQuery 幻灯片插件(带缩略图功能)
2011/01/24 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
javascript工厂方式定义对象
2014/12/26 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
详解JS正则replace的使用方法
2016/03/06 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
基于JavaScript实现自动更新倒计时效果
2016/12/19 Javascript
利用jQuery解析获取JSON数据
2017/04/08 jQuery
Bootstrap实现的表格合并单元格示例
2018/02/06 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
小程序的上传文件接口的注意要点解析
2019/09/17 Javascript
[49:17]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第三场 1月26日
2021/03/11 DOTA
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
python列表list保留顺序去重的实例
2018/12/14 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
信息技术毕业生自荐信范文
2014/03/13 职场文书
伊索寓言教学反思
2014/05/01 职场文书
安全生产宣传标语
2014/06/06 职场文书
部队个人年终总结
2015/03/02 职场文书
公司慰问信范文
2015/03/23 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
JavaScript分页组件使用方法详解
2021/07/26 Javascript
SpringBoot整合Minio文件存储
2022/04/03 Java/Android