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程序抓取新浪在国内的所有IP的教程
May 04 Python
Python脚本文件打包成可执行文件的方法
Jun 02 Python
Python端口扫描简单程序
Nov 10 Python
Django验证码的生成与使用示例
May 20 Python
Python制作词云的方法
Jan 03 Python
Python入门之后再看点什么好?
Mar 05 Python
详解重置Django migration的常见方式
Feb 15 Python
Python面向对象程序设计构造函数和析构函数用法分析
Apr 12 Python
Django集成搜索引擎Elasticserach的方法示例
Jun 04 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
python opencv图片编码为h264文件的实例
Dec 12 Python
PyQt实现计数器的方法示例
Jan 18 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程序--记数器
2006/10/09 PHP
Admin generator, filters and I18n
2011/10/06 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
PHP编写RESTful接口
2016/02/23 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP通过curl获取接口URL的数据方法
2018/05/31 PHP
JQuery 弹出框定位实现方法
2010/12/02 Javascript
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
json的使用小结
2016/06/08 Javascript
jQuery实现手机上输入后隐藏键盘功能
2017/01/04 Javascript
使用async await 封装 axios的方法
2018/07/09 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
初学Python函数的笔记整理
2015/04/07 Python
python使用knn实现特征向量分类
2018/12/26 Python
Python这样操作能存储100多万行的xlsx文件
2019/04/16 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
利用Python实现学生信息管理系统的完整实例
2020/12/30 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
eDreams巴西:廉价机票,酒店优惠和度假套餐
2017/04/14 全球购物
护理中职生求职信范文
2014/02/24 职场文书
市场营销专业毕业生求职信
2014/03/26 职场文书
公司年会策划方案
2014/05/17 职场文书
交通工程专业推荐信
2014/09/06 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
优质护理心得体会
2016/01/22 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书