将罗马转换为整数- Python



我尝试了下面的Python 3代码,从罗马转换到整数。

代码工作正常。但是,当我输入一个整数或字符串(例如:1,2或任何整数,字符串)时,出现了一个问题,它显示消息"无效输入!再试一次!"节目结束了。我想如果程序输入是有效的,它将结束,但如果输入是无效的,输入消息应该继续,直到它成为一个有效的输入。

下面是我的代码:
class Solution(object):
def roman_to_int(self, s):
"""
:type s: str
:rtype: int
"""
roman = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000,'IV':4,'IX':9,'XL':40,'XC':90,'CD':400,'CM':900}
i = 0
num = 0
while i < len(s):
if i+1<len(s) and s[i:i+2] in roman:
num+=roman[s[i:i+2]]
i+=2
else:
#print(i)
num+=roman[s[i]]
i+=1
return num
ob1 = Solution()
message = str(input("Please enter your roman number: "))
try:
n = ob1.roman_to_int(message)
if n > 3999: raise Exception()
print(n)
except Exception:
print("Invalid input! Try again!")

试试这个:

while True:
message = input("Please enter your roman number: ")
try:
n = ob1.roman_to_int(message)
if n > 3999: raise Exception()
print(n)
break
except Exception:
print("Invalid input! Try again!")

相关内容

  • 没有找到相关文章

最新更新