用Python罗马数字转换为阿拉伯数字的方法,python阿拉伯,编橙之家这篇文章给大家介
用Python罗马数字转换为阿拉伯数字的方法,python阿拉伯,编橙之家这篇文章给大家介
编橙之家这篇文章给大家介绍一下用Python罗马数字转换为阿拉伯数字的方法,分享给朋友们,介绍与代码在下面。
大家来了解一下,罗马数字的潜在法则,在罗马数字中,利用7个不同字母进行重复或者组合来表达各式各样的数字。
I = 1
V = 5
X = 10
L = 50
C = 100
D = 500
M = 1000
它的组合关系是,上面的字符最多能同时连续的使用三次
比如:4,罗马数字就应该是IV,而不是IIII,超过三个组合时,就要使用低高组合,4就是I和V的组合,I表示1,V表示5
用Python罗马数字转换为阿拉伯数字函数使用方法:
getRomanNum('MDCCCLXXXVIII')就会获得1888
def getRomanNum(RomanStr): # 编橙之家 www.iplaypy.com """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'
编橙之家文章,
相关内容
- 使用Python将数据写入MP3文件的源码详解,,编橙之家这篇
- Python设置检查点的实现方法_源码,python源码,这篇文章
- Python模拟用户自动登陆网易126邮箱源码详解,python126
- Python代码格式化CSS样式表文件源码分析,pythoncss,用Py
- Python代码实现二进制时钟的方法下载,python二进制,这是
- Python FMM算法的中文分词器实现方法源码,pythonfmm,这是
- Python3.2模拟webqq登录方法源代码分享下载,python3.2webq
- Python实现viterbi(维特比)算法原理流程是什么样的,pyt
- Python代码解决windows平台锁定鼠标键盘输入操作的方法,
- 用Python代码完成组合求解问题的案例,python案例,Pytho
评论关闭