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

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

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

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

羅馬數(shù)字,我們在某些電視中或者現(xiàn)實生活中都曾經(jīng)看到過,近日,學習Python時,也遇到了羅馬數(shù)字的解說,于是順便寫了一個小程序來練習羅馬數(shù)字到我們?nèi)粘I钇胀〝?shù)字之間的轉(zhuǎn)換的小函數(shù)。

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

在羅馬數(shù)字中,利用7個不同字母進行重復或者組合來表達各式各樣的數(shù)字。

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

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

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

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

函數(shù)使用方法:

getRomanNum('MDCCCLXXXVIII')

就會獲得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:這里再為大家提供一款換算工具供大家參考使用:

在線萬能單位換算器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īng)典教程》及《Python文件與目錄操作技巧匯總

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

相關(guān)文章

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

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

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

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

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

    DjangoUeditor圖片不顯示img的src沒有域名問題

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

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

    抓取豆瓣各類型電影的鏈接和評論,按評分排列
    2013-12-12
  • 快速解決jupyter notebook啟動需要密碼的問題

    快速解決jupyter notebook啟動需要密碼的問題

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

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

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

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

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

    深入理解Python虛擬機中的Code?obejct

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

    詳解Python中的條件判斷語句

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

    OpenCV中Canny邊緣檢測的實現(xiàn)

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

最新評論

定远县| 玉龙| 广南县| 湘潭市| 曲靖市| 上栗县| 策勒县| 云南省| 泰和县| 湄潭县| 安龙县| 安阳县| 常德市| 临城县| 娱乐| 临汾市| 呈贡县| 三河市| 筠连县| 铜川市| 定襄县| 晋中市| 清丰县| 峡江县| 辽源市| 广灵县| 紫云| 安西县| 陆河县| 红原县| 民县| 桃江县| 凤阳县| 旬阳县| 呈贡县| 禹城市| 高陵县| 稷山县| 黄石市| 左贡县| 五河县|