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中的random()方法的使用介绍
May 15 Python
python实现带声音的摩斯码翻译实现方法
May 20 Python
python 迭代器和iter()函数详解及实例
Mar 21 Python
python实现决策树、随机森林的简单原理
Mar 26 Python
Python处理CSV与List的转换方法
Apr 19 Python
Python 对输入的数字进行排序的方法
Jun 23 Python
详解通过API管理或定制开发ECS实例
Sep 30 Python
Python 互换字典的键值对实例
Feb 12 Python
python操作文件的参数整理
Jun 11 Python
django foreignkey(外键)的实现
Jul 29 Python
解决更改AUTH_USER_MODEL后出现的问题
May 14 Python
详解python如何引用包package
Jun 07 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
web方式ftp
2006/10/09 PHP
PHP 选项及相关信息函数库
2006/12/04 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
PHP获取链表中倒数第K个节点的方法
2018/01/18 PHP
jquery each()源代码
2011/02/14 Javascript
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
用js闭包的方法实现多点标注冒泡示例
2014/05/29 Javascript
jQuery获取URL请求参数的方法
2015/07/18 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
Bootstrap modal只加载一次数据的解决办法(推荐)
2017/11/24 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
Vue之beforeEach非登录不能访问的实现(代码亲测)
2019/07/18 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
pyv8学习python和javascript变量进行交互
2013/12/04 Python
Python 详解基本语法_函数_返回值
2017/01/22 Python
用python做一个搜索引擎(Pylucene)的实例代码
2017/07/05 Python
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
详解django2中关于时间处理策略
2019/03/06 Python
Python项目跨域问题解决方案
2020/06/22 Python
Python extract及contains方法代码实例
2020/09/11 Python
CSS3 简写animation
2012/05/10 HTML / CSS
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
2015/05/29 面试题
医生见习报告范文
2014/11/03 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
预备党员考察意见范文
2015/06/01 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
python3中apply函数和lambda函数的使用详解
2022/02/28 Python