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完成FizzBuzzWhizz问题(拉勾网面试题)示例
May 05 Python
使用python实现省市三级菜单效果
Jan 20 Python
浅谈python socket函数中,send与sendall的区别与使用方法
May 09 Python
python监控进程脚本
Apr 12 Python
基于Python列表解析(列表推导式)
Jun 23 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
Jul 18 Python
python在html中插入简单的代码并加上时间戳的方法
Oct 16 Python
基于python实现百度翻译功能
May 09 Python
Ubuntu+python将nii图像保存成png格式
Jul 18 Python
Python常用库大全及简要说明
Jan 17 Python
tensorflow指定GPU与动态分配GPU memory设置
Feb 03 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
Sep 03 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下使用无限生命期Session的方法
2007/03/16 PHP
php中文验证码实现示例分享
2014/01/12 PHP
编写PHP脚本来实现WordPress中评论分页的功能
2015/12/10 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
vue-music关于Player播放器组件详解
2017/11/28 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
2020/12/23 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
详解Django中的权限和组以及消息
2015/07/23 Python
Python科学计算之Pandas详解
2017/01/15 Python
python使用tensorflow深度学习识别验证码
2018/04/03 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
Django 开发环境与生产环境的区分详解
2019/07/26 Python
详解python logging日志传输
2020/07/01 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
CSS3常用的几种颜色渐变模式总结
2016/11/18 HTML / CSS
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
我的珠宝盒:Ma boîte à bijoux
2019/08/27 全球购物
质量工程师岗位职责
2013/11/16 职场文书
护士检查书
2014/01/17 职场文书
厨房管理计划书
2014/04/27 职场文书
励志演讲稿大全
2014/08/21 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
2014年旅游局法制宣传日活动总结
2014/11/01 职场文书
中学生自我评价范文
2015/03/03 职场文书