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虚拟环境virtualenv的使用教程
Oct 20 Python
Django 中使用流响应处理视频的方法
Jul 20 Python
Python OOP类中的几种函数或方法总结
Feb 22 Python
Django中使用Whoosh进行全文检索的方法
Mar 31 Python
使用python爬取微博数据打造一颗“心”
Jun 28 Python
python3模拟实现xshell远程执行liunx命令的方法
Jul 12 Python
Python集成开发工具Pycharm的安装和使用详解
Mar 18 Python
keras实现图像预处理并生成一个generator的案例
Jun 17 Python
python调用win32接口进行截图的示例
Nov 11 Python
python小技巧——将变量保存在本地及读取
Nov 13 Python
Python爬取某平台短视频的方法
Feb 08 Python
在 Golang 中实现 Cache::remember 方法详解
Mar 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
php生成静态页面的简单示例
2014/04/17 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
PHP实现的数据对象映射模式详解
2019/03/20 PHP
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
jQuery语法小结(超实用)
2015/12/31 Javascript
js实现非常棒的弹出div
2016/10/06 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
Python中的多重装饰器
2015/04/11 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
python常用函数与用法示例
2019/07/02 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
python中pickle模块浅析
2020/12/29 Python
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
MIS软件工程师的面试题
2016/04/22 面试题
爱祖国演讲稿
2014/05/04 职场文书
群众路线党员个人整改措施
2014/10/27 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
创业计划书之美容店
2019/09/16 职场文书
WebRTC记录音视频流(web技术分享)
2022/02/24 Javascript