Python - 将罗马数字转换为整数
Python - Transform a roman to an integer
我已经尝试了以下 Python 3 个从罗马转换为整数的代码。
代码一目了然。但是当我输入一个整数或字符串(例如:1、2 或任何整数、字符串)时出现某些问题,它显示一些代码错误。我希望当我输入除罗马数字(1 到 3999 以内)以外的任何内容时,它应该 return“再试一次”。
这是我的代码:
class Solution(object):
def romanToInt(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: "))
if (ob1.romanToInt(message)) <= 3999:
print (ob1.romanToInt(message))
else:
print ("Try again")
试试这个:
message = str(input("Please enter your roman number: "))
try:
n = ob1.romanToInt(message)
if n > 3999: raise Exception()
print(n)
except Exception:
print("Try again")
我已经尝试了以下 Python 3 个从罗马转换为整数的代码。
代码一目了然。但是当我输入一个整数或字符串(例如:1、2 或任何整数、字符串)时出现某些问题,它显示一些代码错误。我希望当我输入除罗马数字(1 到 3999 以内)以外的任何内容时,它应该 return“再试一次”。
这是我的代码:
class Solution(object):
def romanToInt(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: "))
if (ob1.romanToInt(message)) <= 3999:
print (ob1.romanToInt(message))
else:
print ("Try again")
试试这个:
message = str(input("Please enter your roman number: "))
try:
n = ob1.romanToInt(message)
if n > 3999: raise Exception()
print(n)
except Exception:
print("Try again")