验证是否为罗马数字[重复项]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了验证是否为罗马数字[重复项]相关的知识,希望对你有一定的参考价值。
我正在制作一个程序,接收罗马数字并将其转换为十进制。下面的代码在一个函数中,该函数验证该ir是否确实是罗马数字。我的想法是识别“ IXI”或“ VIV”之类的数字,因为看起来像罗马数字一样,但实际上不是。我该怎么办?
for i in value:
if value[i] == 'V' and value[i] == value[i+2] and value[i] != value[i+1]:
print("It's not a Roman Number")
控制台:
TypeError: list indices must be integers or slices, not str
答案
尝试此代码。
def roman_to_int(value):
rom_val = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
int_val = 0
if set(value) - set(rom_val.keys()):
print("It's not a Roman Number")
else:
for i in range(len(value)):
if i > 0 and rom_val[value[i]] > rom_val[value[i - 1]]:
int_val += rom_val[value[i]] - 2 * rom_val[value[i - 1]]
else:
int_val += rom_val[value[i]]
return int_val
roman_to_int('V') # 5
roman_to_int('VI') # 6
roman_to_int('IXI') # 10
roman_to_int('TI') # It's not a Roman Number
以上是关于验证是否为罗马数字[重复项]的主要内容,如果未能解决你的问题,请参考以下文章