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计算程序运行时间的方法
Dec 13 Python
Python数据类型详解(三)元祖:tuple
May 08 Python
Python生成8位随机字符串的方法分析
Dec 05 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
Feb 18 Python
对python中的for循环和range内置函数详解
Apr 17 Python
python将秒数转化为时间格式的实例
Sep 16 Python
python如何给字典的键对应的值为字典项的字典赋值
Jul 05 Python
python3.8与pyinstaller冲突问题的快速解决方法
Jan 16 Python
浅谈Python 函数式编程
Jun 20 Python
python程序如何进行保存
Jul 03 Python
浅谈Python3中datetime不同时区转换介绍与踩坑
Aug 02 Python
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
Oct 16 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
php下使用iconv需要注意的问题
2010/11/20 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
js的闭包的一个示例说明
2008/11/18 Javascript
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
jquery中获得$.ajax()事件返回的值并添加事件的方法
2010/04/15 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
javascript动态加载二
2012/08/22 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
2013/01/15 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
详解angular中通过$location获取路径(参数)的写法
2017/03/21 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
python3 爬取图片的实例代码
2018/11/06 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
python zip()函数使用方法解析
2019/10/31 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
培训主管的职业生涯规划
2014/03/06 职场文书
市场营销专业毕业生求职信
2014/03/26 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
学习礼仪心得体会
2014/09/01 职场文书
大学校园招聘会感想
2015/08/10 职场文书
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫