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处理cookie详解
Feb 07 Python
python动态加载包的方法小结
Apr 18 Python
简单了解Django模板的使用
Dec 20 Python
对pytorch网络层结构的数组化详解
Dec 08 Python
python ipset管理 增删白名单的方法
Jan 14 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
Aug 13 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
Pandas操作CSV文件的读写实现方法
Nov 13 Python
利用Python代码实现一键抠背景功能
Dec 29 Python
jupyter notebook读取/导出文件/图片实例
Apr 16 Python
python框架flask入门之环境搭建及开启调试
Jun 07 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 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
全国FM电台频率大全 - 13 福建省
2020/03/11 无线电
解析php中const与define的应用区别
2013/06/18 PHP
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
PHP动态柱状图实现方法
2015/03/30 PHP
PHP curl伪造IP地址和header信息代码实例
2015/04/27 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
JS数学函数Exp使用说明
2012/08/09 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
jQuery oLoader实现的加载图片和页面效果
2015/03/14 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
小程序实现展开/收起的效果示例
2018/09/22 Javascript
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
Python脚本实现集群检测和管理功能
2015/03/06 Python
深入讲解Python编程中的字符串
2015/10/14 Python
python Flask实现restful api service
2017/12/04 Python
python正则实现提取电话功能
2018/02/24 Python
python机器人运动范围问题的解答
2019/04/29 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
会计与审计专业大专生求职信
2013/10/03 职场文书
《伯牙绝弦》教学反思
2014/03/02 职场文书
敬老月活动总结
2014/08/28 职场文书
2014年老干部工作总结
2014/11/21 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书
PHP获取学生成绩的方法
2021/11/17 PHP
MySQL创建表操作命令分享
2022/03/25 MySQL
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA
零基础学java之循环语句的使用
2022/04/10 Java/Android
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技