最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)將羅馬數(shù)字轉(zhuǎn)換成普通阿拉伯?dāng)?shù)字的方法

 更新時(shí)間:2017年04月19日 10:49:21   作者:不得閑  
這篇文章主要介紹了Python實(shí)現(xiàn)將羅馬數(shù)字轉(zhuǎn)換成普通阿拉伯?dāng)?shù)字的方法,簡(jiǎn)單分析了羅馬數(shù)字的構(gòu)成并結(jié)合實(shí)例形式給出了Python轉(zhuǎn)換羅馬數(shù)字為阿拉伯?dāng)?shù)字的實(shí)現(xiàn)方法,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)將羅馬數(shù)字轉(zhuǎn)換成普通阿拉伯?dāng)?shù)字的方法。分享給大家供大家參考,具體如下:

羅馬數(shù)字,我們?cè)谀承╇娨曋谢蛘攥F(xiàn)實(shí)生活中都曾經(jīng)看到過(guò),近日,學(xué)習(xí)Python時(shí),也遇到了羅馬數(shù)字的解說(shuō),于是順便寫(xiě)了一個(gè)小程序來(lái)練習(xí)羅馬數(shù)字到我們?nèi)粘I钇胀〝?shù)字之間的轉(zhuǎn)換的小函數(shù)。

首先,咱們了解一下,羅馬數(shù)字的潛在法則,

在羅馬數(shù)字中,利用7個(gè)不同字母進(jìn)行重復(fù)或者組合來(lái)表達(dá)各式各樣的數(shù)字。

I = 1
V = 5
X = 10
L = 50
C = 100
D = 500
M = 1000

其組合關(guān)系是:

上面的字符最多能同時(shí)連續(xù)的使用三次

比如:4,羅馬數(shù)字就應(yīng)該是IV,而不是IIII,超過(guò)三個(gè)組合時(shí),就要使用低高組合,4就是I和V的組合,I表示1,V表示5

函數(shù)使用方法:

getRomanNum('MDCCCLXXXVIII')

就會(huì)獲得1888

Python代碼:

def getRomanNum(RomanStr):
 """Roman numerals will be converted into digital,RomanStr is a RomanString"""
   import re
   if re.search('^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$',RomanStr)!=None:
     NumDic = {"pattern":"","retNum":0}
     RomanPattern = {
       "0":('','','','M'),
       "1":('CM','CD','D','C',100),
       "2":('XC','XL','L','X',10),
       "3":('IX','IV','V','I',1)
       }
     i = 3
     NumItems = sorted(RomanPattern.items())
     for RomanItem in NumItems:
       if RomanItem[0] != '0':
         patstr = NumDic["pattern"].join(['',RomanItem[1][0]])
         if re.search(patstr,RomanStr) != None:
           NumDic["retNum"] += 9*RomanItem[1][4]
           NumDic["pattern"] = patstr
         else:
           patstr = NumDic["pattern"].join(['',RomanItem[1][1]])
           if re.search(patstr,RomanStr) != None:
             NumDic["retNum"] += 4*RomanItem[1][4]
             NumDic["pattern"] = patstr
           else:
             patstr = NumDic["pattern"].join(['',RomanItem[1][2]])
             if re.search(patstr,RomanStr) != None:
               NumDic["retNum"] += 5*RomanItem[1][4]
               NumDic["pattern"] = patstr
       if NumDic["pattern"] == '':
         NumDic["pattern"] = '^'
       tempstr = ''
       sum = 0
       for k in range(0,4):
         pstr = RomanItem[1][3].join(['','{']).join(['',str(k)]).join(['','}'])
         patstr = NumDic["pattern"].join(['',pstr])
         if re.search(patstr,RomanStr) != None:
           sum = k*(10**i)
           tempstr = patstr
       if tempstr <> '':
         NumDic["pattern"] = tempstr
       else:
         NumDic["pattern"] = patstr
       NumDic['retNum'] += sum
       i -= 1
     return NumDic['retNum']
   else:
     print 'String is not a valid Roman numerals'

PS:這里再為大家提供一款換算工具供大家參考使用:

在線萬(wàn)能單位換算器flash版:
http://tools.jb51.net/zhuanhuanqi/all_zhuanhuanqi

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • python中列表和元組的用法以及區(qū)別超詳細(xì)講解

    python中列表和元組的用法以及區(qū)別超詳細(xì)講解

    這篇文章主要介紹了Python中的列表和元組,包括它們的定義、特點(diǎn)、常見(jiàn)操作以及與列表的區(qū)別,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • python 制作手機(jī)歸屬地查詢工具(附源碼)

    python 制作手機(jī)歸屬地查詢工具(附源碼)

    這篇文章主要介紹了python 制作手機(jī)歸屬地查詢工具,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • DjangoUeditor圖片不顯示img的src沒(méi)有域名問(wèn)題

    DjangoUeditor圖片不顯示img的src沒(méi)有域名問(wèn)題

    在使用DjangoUeditor過(guò)程中,可能遇到圖片上傳后不顯示問(wèn)題,解決辦法是修改源碼view.py,加入代碼使得保存的圖片URL帶有協(xié)議和域名,具體做法是在保存圖片代碼中添加request.scheme獲取協(xié)議,request.META['HTTP_HOST']獲取域名
    2024-09-09
  • python正則匹配抓取豆瓣電影鏈接和評(píng)論代碼分享

    python正則匹配抓取豆瓣電影鏈接和評(píng)論代碼分享

    抓取豆瓣各類型電影的鏈接和評(píng)論,按評(píng)分排列
    2013-12-12
  • 快速解決jupyter notebook啟動(dòng)需要密碼的問(wèn)題

    快速解決jupyter notebook啟動(dòng)需要密碼的問(wèn)題

    這篇文章主要介紹了快速解決jupyter notebook啟動(dòng)需要密碼的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • python中bytes和str類型的區(qū)別

    python中bytes和str類型的區(qū)別

    這篇文章主要介紹了python中bytes和str類型的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 利用Python定位Span標(biāo)簽中文字的實(shí)戰(zhàn)指南

    利用Python定位Span標(biāo)簽中文字的實(shí)戰(zhàn)指南

    在網(wǎng)頁(yè)數(shù)據(jù)抓取和信息提取的過(guò)程中,經(jīng)常需要定位并獲取HTML中特定標(biāo)簽的內(nèi)容,其中,<span>標(biāo)簽是一個(gè)常見(jiàn)的內(nèi)聯(lián)元素,用于對(duì)文本進(jìn)行分組或應(yīng)用樣式,本文將詳細(xì)介紹如何使用Python來(lái)定位并提取<span>標(biāo)簽中的文字,需要的朋友可以參考下
    2024-12-12
  • 深入理解Python虛擬機(jī)中的Code?obejct

    深入理解Python虛擬機(jī)中的Code?obejct

    在本篇文章當(dāng)中主要給大家深入介紹在?cpython?當(dāng)中非常重要的一個(gè)數(shù)據(jù)結(jié)構(gòu)?code?object!?我們簡(jiǎn)單介紹了一下在?code?object?當(dāng)中有哪些字段以及這些字段的簡(jiǎn)單含義,在本篇文章當(dāng)中將會(huì)舉一些例子以便更加深入理解這些字段
    2023-04-04
  • 詳解Python中的條件判斷語(yǔ)句

    詳解Python中的條件判斷語(yǔ)句

    這篇文章主要介紹了Python中的條件判斷語(yǔ)句,是Python入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • OpenCV中Canny邊緣檢測(cè)的實(shí)現(xiàn)

    OpenCV中Canny邊緣檢測(cè)的實(shí)現(xiàn)

    本文主要介紹了OpenCV中Canny邊緣檢測(cè)的實(shí)現(xiàn),邊緣檢測(cè)一般是識(shí)別目標(biāo)圖像中亮度變化明顯的像素點(diǎn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評(píng)論

东明县| 岗巴县| 申扎县| 河北区| 日喀则市| 台北县| 缙云县| 沛县| 周至县| 买车| 上饶市| 突泉县| 赫章县| 顺平县| 海原县| 扎兰屯市| 灌云县| 历史| 东兰县| 兴化市| 多伦县| 太原市| 报价| 垫江县| 木兰县| 桂东县| 和林格尔县| 昆明市| 三江| 和田市| 邯郸县| 休宁县| 渝中区| 德州市| 甘南县| 新竹县| 文安县| 英吉沙县| 吉首市| 彩票| 丰城市|