在一个论坛里,我发现了一个很好的函数(由Pixie完成),可以将罗马数字转换成阿拉伯数字。你知道吗
def decoder(r):
k=r
if r=="":return "Don't leave the input blank"
roman,s= {"M":1000,"CM":900, "D":500, "CD":400, "C":100, "XC":90, "L":50, "XL":40, "X":10, "IX":9, "V":5, "IV":4, "I":1},0
while r!="":
if r[:2] in roman:a,r=r[:2],r[2:]
elif r[0] in roman:a,r=r[0],r[1:]
else: return "Enter proper Decimal/Roman number as input"
s+=roman[a]
return s if encoder(int(s))==k else "Not a valid Roman Numeral"
a="MCM"
print(decoder (a.upper))
我是Python的超级新手,我不明白这个说法
如果r[:2]
在罗马:a,r=r[:2],r[2:]
我知道r[:2]
和其他人是字符串切片。我不明白的是逗号的用法:
a,r=r[:2],r[2:]
看起来像元组,但为什么呢?是作业吗?你知道吗
Python能够在采样线上指定多个值。。。你知道吗
在本例中,我还将赋值行移到
if
和elif
语句下的一个新的缩进行。你知道吗第一个赋值行与以下内容相同:
第二个相同:
相关问题 更多 >
编程相关推荐