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 19 Python
python语言元素知识点详解
May 15 Python
python 实现创建文件夹和创建日志文件的方法
Jul 07 Python
django 捕获异常和日志系统过程详解
Jul 18 Python
python logging模块书写日志以及日志分割详解
Jul 22 Python
Python 中的 import 机制之实现远程导入模块
Oct 29 Python
wxPython绘图模块wxPyPlot实现数据可视化
Nov 19 Python
Python字符串的修改方法实例
Dec 19 Python
Python tcp传输代码实例解析
Mar 18 Python
python怎么调用自己的函数
Jul 01 Python
关于python类SortedList详解
Sep 04 Python
详解PyTorch模型保存与加载
Apr 28 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获取某个目录大小的代码
2008/09/10 PHP
排序算法之PHP版快速排序、冒泡排序
2014/04/09 PHP
如何判断php mysqli扩展类是否开启
2016/12/24 PHP
javascript中最常用的继承模式 组合继承
2010/08/12 Javascript
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
2012/03/10 Javascript
js实现交通灯效果
2017/01/13 Javascript
JavaScript编写九九乘法表(两种任选)
2017/02/04 Javascript
JavaScript 函数节流详解及方法总结
2017/02/09 Javascript
vue component组件使用方法详解
2017/07/14 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
在Angular项目使用socket.io实现通信的方法
2021/01/05 Javascript
Python中str.format()详解
2017/03/12 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
kali中python版本的切换方法
2019/07/11 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
网站开发实习生的自我评价
2013/12/11 职场文书
实习自我鉴定
2013/12/15 职场文书
研发工程师岗位职责
2014/04/28 职场文书
经典导游欢迎词
2015/01/26 职场文书
市场总监岗位职责
2015/02/11 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
给女朋友的道歉短信
2015/05/12 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
python实现A*寻路算法
2021/06/13 Python
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers