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网络编程学习笔记(三):socket网络服务器
Jun 09 Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
在Python的Django框架中生成CSV文件的方法
Jul 22 Python
分享Python字符串关键点
Dec 13 Python
Python实现的爬虫刷回复功能示例
Jun 07 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
Django实现分页功能
Jul 02 Python
Python项目跨域问题解决方案
Jun 22 Python
Python drop方法删除列之inplace参数实例
Jun 27 Python
python实现学生信息管理系统源码
Feb 22 Python
python实现求纯色彩图像的边框
Apr 08 Python
python利用while求100内的整数和方式
Nov 07 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 SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
PHP实现的简单排列组合算法应用示例
2017/06/20 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
2019/08/12 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
prototype 1.5相关知识及他人笔记
2006/12/16 Javascript
几款极品的javascript压缩混淆工具
2007/05/16 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
2014/08/27 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
jQuery代码实现对话框右上角菜单带关闭×
2016/05/03 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
2017/12/11 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
python 回调函数和回调方法的实现分析
2016/03/23 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
linux 下selenium chrome使用详解
2020/04/02 Python
python如何使用腾讯云发送短信
2020/09/17 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
南京软件公司的.net程序员笔试题
2014/08/31 面试题
Prototype是怎么扩展DOM的
2014/10/01 面试题
小学生国庆节演讲稿
2014/09/05 职场文书
个人四风对照检查材料
2014/09/26 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
2015年电教工作总结
2015/05/26 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
退休欢送会致辞
2015/07/31 职场文书
高中政治教学反思
2016/02/23 职场文书
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
python使用shell脚本创建kafka连接器
2022/04/29 Python