Python使用逗号

时间:2017-07-30 16:22:55

标签: python

在一个论坛中,我发现这个很好的功能(由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:]看起来像一个元组,但为什么?这是一项任务吗?

1 个答案:

答案 0 :(得分:0)

Python能够在样本行上分配多个值...

在这种情况下,我还将分配行移动到ifelif语句下的新的缩进行。

if r[:2] in roman:
    a,r = r[:2], r[2:]

elif r[0] in roman:
    a,r = r[0], r[1:]

第一个分配行与:

相同
a = r[:2]
r = r[2:]

第二个与:

相同
a = r[0]
r = r[1:]