這篇文章主要介紹了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簡單實現阿拉伯數位與羅馬數位的互轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!