输入分配不正确

  • 本文关键字:不正确 分配 python
  • 更新时间 :
  • 英文 :

def roman_value(roman):
    roman_values = (('I',1), ('IV',4), ('V',5), ('IX',9),('X',10),('XL',40),('L',50),('XC',90),('C',100),
                    ('CD', 400), ('D', 500), ('CM', 900), ('M',1000))
    romanSymbol = input("enter roman symbols < 3999: ")
    total=0
    for symbol,value in reversed(roman_values):
        while roman.startswith(symbol):
            total += value
            roman = roman[len(symbol):]
    return total
if __name__=='__main__':
    for value in "MCMXC", "MMVIII", "MDCLXVI", "":
        print('%s = %i' % (value, roman_value(value)))
roman_value()

我认为你实际上想要这样的东西:

def roman_value():
    roman_values = (('I',1), ('IV',4), ('V',5), ('IX',9),('X',10),('XL',40),('L',50),('XC',90),('C',100),
                    ('CD', 400), ('D', 500), ('CM', 900), ('M',1000))
    romanSymbol = input("enter roman symbols < 3999: ")
    roman = romanSymbol
    total=0
    for symbol,value in reversed(roman_values):
        while roman.startswith(symbol):
            total += value
            roman = roman[len(symbol):]
    print('%s = %i' % (romanSymbol, total))
roman_value()

最新更新