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通过pil模块将raw图片转换成png图片的方法
Mar 16 Python
python fabric实现远程部署
Jan 05 Python
Python微信公众号开发平台
Jan 25 Python
Python之用户输入的实例
Jun 22 Python
对django中render()与render_to_response()的区别详解
Oct 16 Python
Python3对称加密算法AES、DES3实例详解
Dec 06 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
Jan 05 Python
python中的协程深入理解
Jun 10 Python
OpenCV 轮廓检测的实现方法
Jul 03 Python
根据tensor的名字获取变量的值方式
Jan 04 Python
使用Python打造一款间谍程序的流程分析
Feb 21 Python
python实现翻译word表格小程序
Feb 27 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
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
JQuery判断HTML元素是否存在的两种解决方法
2013/12/26 Javascript
jQuery获取样式中颜色值的方法
2015/01/29 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
AngularJS实现动态添加Option的方法
2017/05/17 Javascript
Angularjs的启动过程分析
2017/07/18 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
JS实现放烟花效果
2020/03/10 Javascript
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
JSON Web Tokens的实现原理
2017/04/02 Python
Django中的Model操作表的实现
2018/07/24 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
Python单向链表和双向链表原理与用法实例详解
2018/08/31 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
2014红色之旅心得体会
2014/10/07 职场文书
文明单位创建材料
2014/12/24 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
奖学金申请书(范文)
2019/08/14 职场文书
apache基于端口创建虚拟主机的示例
2021/04/24 Servers
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
2021/05/26 Servers
Python Pygame实战之塔防游戏的实现
2022/03/17 Python