check for non-integerness before range

This commit is contained in:
Mark Pilgrim
2010-09-16 21:44:12 -04:00
parent dc45dd3265
commit 76a14e4290
4 changed files with 7 additions and 7 deletions
+2 -2
View File
@@ -28,10 +28,10 @@ from_roman_table = {}
def to_roman(n):
'''convert integer to Roman numeral'''
if not (0 < n < 5000):
raise OutOfRangeError('number out of range (must be 1..4999)')
if int(n) != n:
raise NotIntegerError('non-integers can not be converted')
if not (0 < n < 5000):
raise OutOfRangeError('number out of range (must be 1..4999)')
return to_roman_table[n]
def from_roman(s):
+2 -2
View File
@@ -38,10 +38,10 @@ roman_numeral_pattern = re.compile('''
def to_roman(n):
'''convert integer to Roman numeral'''
if not (0 < n < 5000):
raise OutOfRangeError('number out of range (must be 1..4999)')
if not isinstance(n, int):
raise NotIntegerError('non-integers can not be converted')
if not (0 < n < 5000):
raise OutOfRangeError('number out of range (must be 1..4999)')
result = ''
for numeral, integer in roman_numeral_map: