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 相关文章推荐
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
PyQt5实现下载进度条效果
Apr 19 Python
对Python中type打开文件的方式介绍
Apr 28 Python
利用Python如何批量修改数据库执行Sql文件
Jul 29 Python
Django添加KindEditor富文本编辑器的使用
Oct 24 Python
python binascii 进制转换实例
Jun 12 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
python numpy中cumsum的用法详解
Oct 17 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
Python 发送邮件方法总结
Aug 10 Python
基于python实现简单C/S模式代码实例
Sep 14 Python
Python实现简单的2048小游戏
Mar 01 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
如何将数据从文本导入到mysql
2006/10/09 PHP
php中拷贝构造函数、赋值运算符重载
2012/07/25 PHP
利用PHP实现短域名互转
2013/07/05 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
document.compatMode介绍
2009/05/21 Javascript
Ext grid 添加右击菜单
2009/11/26 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
jquery miniui 教程 表格控件 合并单元格应用
2012/11/25 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
2015/11/07 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
Angular的$http与$location
2016/12/26 Javascript
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
安装vue-cli的简易过程
2018/05/22 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
js实现验证码干扰(静态)
2021/02/22 Javascript
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
浅述python中深浅拷贝原理
2018/09/18 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
python生成requirements.txt的两种方法
2019/09/18 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
大学学习生活感言
2014/01/18 职场文书
会议邀请函
2015/01/30 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
学校运动会开幕词
2016/03/03 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android
新手初学Java网络编程
2021/07/07 Java/Android