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为运维人员写一个监控脚本
Mar 25 Python
pandas带有重复索引操作方法
Jun 08 Python
python 生成图形验证码的方法示例
Nov 11 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
Aug 10 Python
python中的反斜杠问题深入讲解
Aug 12 Python
Python3安装pip工具的详细步骤
Oct 14 Python
python模拟实现斗地主发牌
Jan 07 Python
OpenCV python sklearn随机超参数搜索的实现
Jan 17 Python
Python引入多个模块及包的概念过程解析
Sep 21 Python
python中turtle库的简单使用教程
Nov 11 Python
Python与C/C++的相互调用案例
Mar 04 Python
pytorch交叉熵损失函数的weight参数的使用
May 24 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数据库操作面向对象的优点
2006/10/09 PHP
php microtime获取浮点的时间戳
2010/02/21 PHP
PHP 引用文件技巧
2010/03/02 PHP
解析PHP中的unset究竟会不会释放内存
2013/07/18 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
Vue3+elementui plus创建项目的方法
2020/12/01 Vue.js
Python 爬虫图片简单实现
2017/06/01 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
2021/01/15 Python
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
个人求职简历的自我评价范文
2013/10/09 职场文书
小学老师对学生的评语
2014/12/29 职场文书
公务员个人年终总结
2015/02/12 职场文书
人事行政助理岗位职责
2015/04/11 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js
Python机器学习之基础概述
2021/05/19 Python
Python操作CSV格式文件的方法大全
2021/07/15 Python