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 thread 并发且顺序运行示例
Apr 09 Python
github配置使用指南
Nov 18 Python
Python中运行并行任务技巧
Feb 26 Python
python脚本爬取字体文件的实现方法
Apr 29 Python
tensorflow学习笔记之mnist的卷积神经网络实例
Apr 15 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
Apr 23 Python
django反向解析URL和URL命名空间的方法
Jun 05 Python
Python实现多级目录压缩与解压文件的方法
Sep 01 Python
Python笔记之facade模式
Nov 20 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
python本地文件服务器实例教程
May 02 Python
Python一些基本的图像操作和处理总结
Jun 23 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中include()与require()的区别说明
2010/03/10 PHP
PHP include_path设置技巧分享
2011/07/03 PHP
PHP Undefined index报错的修复方法
2011/07/17 PHP
逆序二维数组插入一元素的php代码
2012/06/08 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
PHP处理会话函数大总结
2015/08/05 PHP
php进行md5加密简单实例方法
2019/09/19 PHP
Ajax+Json 级联菜单实现代码
2009/10/27 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
javascript实现简单的分页特效
2015/08/12 Javascript
基于JS实现的笛卡尔乘积之商品发布
2016/05/13 Javascript
js中document.referrer实现移动端返回上一页
2017/02/22 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
微信小程序学习之数据处理详解
2017/07/05 Javascript
vue移动端路由切换实例分析
2018/05/14 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
python 链接sqlserver 写接口实例
2020/03/11 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
2020/05/26 Python
基于python实现查询ip地址来源
2020/06/02 Python
HTML5 Canvas概述
2009/08/26 HTML / CSS
UGG美国官网:购买UGG雪地靴、拖鞋和鞋子
2017/12/31 全球购物
美国轮胎网站:Priority Tire
2018/11/28 全球购物
学生就业推荐信
2013/11/13 职场文书
经理秘书求职自荐信范文
2014/03/23 职场文书
中学清明节活动总结
2014/07/04 职场文书
律师授权委托书范本
2014/10/07 职场文书
土建技术员岗位职责
2015/04/11 职场文书
北京青年观后感
2015/06/15 职场文书
2016简单的租房合同范本
2016/03/18 职场文书