Python简单实现阿拉伯数字和罗马数字的互相转换功能示例


Posted in Python onApril 17, 2018

本文实例讲述了Python实现阿拉伯数字和罗马数字的互相转换功能。分享给大家供大家参考,具体如下:

前面一篇介绍了《Java实现的求解经典罗马数字和阿拉伯数字相互转换问题》,这里来看看Python的实现方法。

题目很简单,如果之前也做过这种题目的话,相信对于什么是罗马数字就不会很陌生了,罗马数字是很古老的计数方法,现在的一些地方还有见到它的使用,下面简单贴两张维基百科的图片简单回顾一下罗马数字:

Python简单实现阿拉伯数字和罗马数字的互相转换功能示例

Python简单实现阿拉伯数字和罗马数字的互相转换功能示例

今天简单实现一下,阿拉伯数字和罗马数字之间的相互转化问题,很简单就不多说了,下面是具体的实现:

#!usr/bin/env python
#encoding:utf-8
'''''
__Author__:沂水寒城
功能:阿拉伯数字和罗马数字的互相转换
'''
def transform_alabo2_roman_num(one_num):
  '''''
  将阿拉伯数字转化为罗马数字
  '''
  num_list=[1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
  str_list=["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]
  res=''
  for i in range(len(num_list)):
    while one_num>=num_list[i]:
      one_num-=num_list[i]
      res+=str_list[i]
  return res
def transform_roman_num2_alabo(one_str):
  '''''
  将罗马数字转化为阿拉伯数字
  '''
  define_dict={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
  if one_str=='0':
    return 0
  else:
    res=0
    for i in range(0,len(one_str)):
      if i==0 or define_dict[one_str[i]]<=define_dict[one_str[i-1]]:
        res+=define_dict[one_str[i]]
      else:
        res+=define_dict[one_str[i]]-2*define_dict[one_str[i-1]]
    return res
    # #下面这种写法也可以
    # for i in range(len(one_str)):
    #   if i > 0 and define_dict[one_str[i]] > define_dict[one_str[i - 1]]:
    #     res -= define_dict[one_str[i - 1]]
    #     res += define_dict[one_str[i]] - define_dict[one_str[i - 1]]
    #   else:
    #     res += define_dict[one_str[i]]
    # return res
if __name__ == '__main__':
  print '**************将罗马数字转化为阿拉伯数字**************'
  one_str_list=['DII','XV','MDCLXVI','XII','VIII','XCIX','XII']
  for one_str in one_str_list:
    print one_str,'----->',transform_roman_num2_alabo(one_str)
  print '**************将阿拉伯数字转化为罗马数字**************'
  one_num_list=[77,66,55,8,1200,34,65,3,21,99]
  for one_num in one_num_list:
    print one_num,'----->',transform_alabo2_roman_num(one_num)

结果如下:

Python简单实现阿拉伯数字和罗马数字的互相转换功能示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python判断端口是否打开的实现代码
Feb 10 Python
Python sys.argv用法实例
May 28 Python
python3使用requests模块爬取页面内容的实战演练
Sep 25 Python
Python 实现一行输入多个值的方法
Apr 21 Python
python内置数据类型之列表操作
Nov 12 Python
Python3简单实现串口通信的方法
Jun 12 Python
Django Celery异步任务队列的实现
Jul 24 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 Python
Python通过正则库爬取淘宝商品信息代码实例
Mar 02 Python
判断Threading.start新线程是否执行完毕的实例
May 02 Python
django日志默认打印request请求信息的方法示例
May 17 Python
解决Pyinstaller打包软件失败的一个坑
Mar 04 Python
python3库numpy数组属性的查看方法
Apr 17 #Python
对python中的for循环和range内置函数详解
Apr 17 #Python
Numpy数组转置的两种实现方法
Apr 17 #Python
详解Django之auth模块(用户认证)
Apr 17 #Python
numpy中实现ndarray数组返回符合特定条件的索引方法
Apr 17 #Python
python中找出numpy array数组的最值及其索引方法
Apr 17 #Python
详谈Numpy中数组重塑、合并与拆分方法
Apr 17 #Python
You might like
ZF等常用php框架中存在的问题
2008/01/10 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
php版微信自定义回复功能示例
2016/12/05 PHP
PHP文件操作详解
2016/12/30 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
一些常用的JS功能函数代码
2009/06/23 Javascript
jQuery的实现原理的模拟代码 -1 核心部分
2010/08/01 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
Js四则运算函数代码
2012/07/21 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
2015/12/22 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
小程序实现多列选择器
2019/02/15 Javascript
js实现转动骰子模型
2019/10/24 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
[08:04]TI4西雅图DOTA2前线报道 海涛探访各路人马
2014/07/09 DOTA
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
轻松实现python搭建微信公众平台
2016/02/16 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
拉夫劳伦爱尔兰官方网站:Ralph Lauren爱尔兰
2020/04/10 全球购物
高中生学习的自我评价
2013/12/14 职场文书
转党组织关系介绍信
2014/01/08 职场文书
详细的大学生创业计划书模板
2014/01/27 职场文书
我爱读书演讲稿
2014/05/07 职场文书
竞聘自述材料
2014/08/25 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
群众路线教育实践活动对照检查材料
2014/09/22 职场文书
单身证明格式样本
2015/06/15 职场文书
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server