溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

利用Python怎么將阿拉伯?dāng)?shù)字和羅馬數(shù)字進(jìn)行轉(zhuǎn)換

發(fā)布時(shí)間:2021-02-23 15:55:59 來(lái)源:億速云 閱讀:1422 作者:戴恩恩 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了利用Python怎么將阿拉伯?dāng)?shù)字和羅馬數(shù)字進(jìn)行轉(zhuǎn)換,億速云小編覺(jué)得不錯(cuò),現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨億速云小編來(lái)看看吧!

python可以做什么

Python是一種編程語(yǔ)言,內(nèi)置了許多有效的工具,Python幾乎無(wú)所不能,該語(yǔ)言通俗易懂、容易入門、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開(kāi)發(fā)等。

利用Python怎么將阿拉伯?dāng)?shù)字和羅馬數(shù)字進(jìn)行轉(zhuǎn)換

利用Python怎么將阿拉伯?dāng)?shù)字和羅馬數(shù)字進(jìn)行轉(zhuǎn)換

今天簡(jiǎn)單實(shí)現(xiàn)一下,阿拉伯?dāng)?shù)字和羅馬數(shù)字之間的相互轉(zhuǎn)化問(wèn)題,很簡(jiǎn)單就不多說(shuō)了,下面是具體的實(shí)現(xiàn):

#!usr/bin/env python
#encoding:utf-8
'''''
__Author__:沂水寒城
功能:阿拉伯?dāng)?shù)字和羅馬數(shù)字的互相轉(zhuǎn)換
'''
def transform_alabo2_roman_num(one_num):
  '''''
  將阿拉伯?dāng)?shù)字轉(zhuǎn)化為羅馬數(shù)字
  '''
  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):
  '''''
  將羅馬數(shù)字轉(zhuǎn)化為阿拉伯?dāng)?shù)字
  '''
  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 '**************將羅馬數(shù)字轉(zhuǎn)化為阿拉伯?dāng)?shù)字**************'
  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 '**************將阿拉伯?dāng)?shù)字轉(zhuǎn)化為羅馬數(shù)字**************'
  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)

結(jié)果如下:

利用Python怎么將阿拉伯?dāng)?shù)字和羅馬數(shù)字進(jìn)行轉(zhuǎn)換

以上就是億速云小編為大家收集整理的利用Python怎么將阿拉伯?dāng)?shù)字和羅馬數(shù)字進(jìn)行轉(zhuǎn)換,如何覺(jué)得億速云網(wǎng)站的內(nèi)容還不錯(cuò),歡迎將億速云網(wǎng)站推薦給身邊好友。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI