• 技术文章 >后端开发 >php教程

    Python简单实现阿拉伯数字和罗马数字的互相转换

    不言不言2018-04-17 10:32:47原创1215
    这篇文章主要介绍了Python简单实现阿拉伯数字和罗马数字的互相转换,涉及Python针对字符串与列表的遍历、运算等相关操作技巧,有需要的朋友可以参考下

    本文实例讲述了Python实现阿拉伯数字和罗马数字的互相转换功能。分享给大家供大家参考,具体如下:

    前面一篇介绍了《Java实现的求解经典罗马数字和阿拉伯数字相互转换问题》,这里来看看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实现百度语音识别api

    Python实现求解最大公约数的方法

    以上就是Python简单实现阿拉伯数字和罗马数字的互相转换的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    上一篇:记录:php上传图片至服务器 并返回显示图片地址 下一篇:php微信公众号开发之现金红包
    大前端线上培训班

    相关文章推荐

    • 浅谈怎么利用PHP读取到图片的EXIF信息(附代码)• PHP数据库学习之怎样使用PDO执行SQL语句?• PHP数据库学习之怎样使用PDO获取查询结果?• PHP数据库学习之怎样使用PDO连接数据库?• PHP中获取SQL的查询结果的常用函数整理(实例详解)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网