>  기사  >  백엔드 개발  >  Python은 단순히 아라비아 숫자와 로마 숫자 간의 변환을 구현합니다.

Python은 단순히 아라비아 숫자와 로마 숫자 간의 변환을 구현합니다.

不言
不言원래의
2018-04-17 10:32:473131검색

이 글은 주로 아라비아 숫자와 로마 숫자를 서로 변환하는 Python의 간단한 구현을 소개하며, 문자열과 목록에 대한 Python의 순회, 연산 및 기타 관련 연산 기술을 포함하여 도움이 필요한 친구들이 참고할 수 있습니다

이 글은 설명합니다. 예제가 포함된 Python 구현 아라비아 숫자와 로마 숫자 사이의 변환 함수. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

이전 기사에서는 "고전 로마 숫자와 아라비아 숫자 변환 문제를 해결하는 Java 구현"을 소개했습니다. 여기서는 Python에서의 구현 방법을 살펴봅니다.

질문은 매우 간단합니다. 이전에 이런 질문을 해본 적이 있다면 로마 숫자가 무엇인지 잘 아실 것입니다. 로마 숫자는 매우 오래된 계산 방법이며 오늘날에도 여전히 사용됩니다. 간단히 Wikipedia에서 두 장의 사진을 게시하여 로마 숫자를 간단히 검토하세요.

오늘은 간단히 구현하겠습니다. 아라비아 숫자와 로마 숫자의 상호 변환 문제는 매우 간단하므로 자세히 설명하지 않겠습니다. 구체적인 구현:

#!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__ == &#39;__main__&#39;:
  print &#39;**************将罗马数字转化为阿拉伯数字**************&#39;
  one_str_list=[&#39;DII&#39;,&#39;XV&#39;,&#39;MDCLXVI&#39;,&#39;XII&#39;,&#39;VIII&#39;,&#39;XCIX&#39;,&#39;XII&#39;]
  for one_str in one_str_list:
    print one_str,&#39;----->&#39;,transform_roman_num2_alabo(one_str)
  print &#39;**************将阿拉伯数字转化为罗马数字**************&#39;
  one_num_list=[77,66,55,8,1200,34,65,3,21,99]
  for one_num in one_num_list:
    print one_num,&#39;----->&#39;,transform_alabo2_roman_num(one_num)

결과는 다음과 같습니다.

관련 권장 사항:

Python은 Baidu 음성 인식 API를 구현합니다

Python은 최대 공약수를 푸는 방법을 구현합니다.

위 내용은 Python은 단순히 아라비아 숫자와 로마 숫자 간의 변환을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.