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 threading多线程编程实例
Sep 18 Python
分析在Python中何种情况下需要使用断言
Apr 01 Python
详解Python迭代和迭代器
Mar 28 Python
一些常用的Python爬虫技巧汇总
Sep 28 Python
使用Python3 编写简单信用卡管理程序
Dec 21 Python
python实现树形打印目录结构
Mar 29 Python
Python3中详解fabfile的编写
Jun 24 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
Jul 09 Python
python命令行工具Click快速掌握
Jul 04 Python
jupyter notebook清除输出方式
Apr 10 Python
Linux系统下升级pip的完整步骤
Jan 31 Python
Python max函数中key的用法及原理解析
Jun 26 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 5.0创建图形的巧妙方法
2010/10/12 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
php cli配置文件问题分析
2015/10/15 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
js控制表单操作的常用代码小结
2013/08/15 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
JavaScript通过代码调用Flash显示的方法
2016/02/02 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
JS使用百度地图API自动获取地址和经纬度操作示例
2019/04/16 Javascript
详解vue v-model
2020/08/31 Javascript
解决removeEventListener 无法清除监听的问题
2020/10/30 Javascript
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
2016/06/13 Python
python对日志进行处理的实例代码
2018/10/06 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
详解torch.Tensor的4种乘法
2020/09/03 Python
python 6行代码制作月历生成器
2020/09/18 Python
pytorch __init__、forward与__call__的用法小结
2021/02/27 Python
Footshop法国:购买运动鞋
2020/01/19 全球购物
幼儿园保育员辞职信
2014/01/12 职场文书
四风问题自查报告剖析材料
2014/02/08 职场文书
世界环境日活动总结
2015/02/11 职场文书
病危通知单
2015/04/17 职场文书
环保守法证明
2015/06/24 职场文书
高中军训感想
2015/08/07 职场文书
施工安全协议书
2016/03/22 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python