验证是否为罗马数字[重复项]

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

以上是关于验证是否为罗马数字[重复项]的主要内容,如果未能解决你的问题,请参考以下文章

13 个非常有用的 Python 代码片段

SQL Server去重和判断是否为数字

JavaScript笔试题(js高级代码片段)

SQL Server去重和判断是否为数字——OBJECT_ID的使用

JavaScript 代码片段

使用 JavaScript / jQuery 进行简单的数字验证