我有一个程序可以将罗马数字转换为整数,反之亦然。我的问题是我真的不知道如何创建一个函数来检查用户输入是否是有效的罗马数字。我现在的代码:
def checkIfRomanNumeral(numeral):
"""Controls that the userinput only contains valid roman numerals"""
numeral = numeral.upper()
validRomanNumerals = ["M", "D", "C", "L", "X", "V", "I", "(", ")"]
for letters in numeral:
if letters not in validRomanNumerals:
print("Sorry that is not a valid roman numeral")
return True
elif letters in validRomanNumerals:
romanToInt(numeral)
break
我认为现在的问题是由于 for 循环,该函数只检查输入(数字)中的第一个字母。如果输入的任何字母不是罗马数字,有人可以帮我让函数检查整个输入并打印(“抱歉,这不是有效的罗马数字”)。列表 validRomanNumerals 中的括号用于转换大于 4000 的数字,因此它们必须存在。
原文由 user3122654 发布,翻译遵循 CC BY-SA 4.0 许可协议
在
for
循环之后调用romantoint