forked from course-work/week1
25 lines
693 B
Python
25 lines
693 B
Python
class int( int ):
|
|
|
|
def roman( self ):
|
|
romanNum = []
|
|
symbols = ( ( 'M', 1000 ), ( 'C', 100 ), ( 'XC', 90 ), ( 'L', 50 ), ( 'X', 10 ),
|
|
( 'IX', 9 ), ('V', 5 ) , ( 'IV', 4 ), ( 'I', 1 ) )
|
|
|
|
for symbol, value in symbols:
|
|
while self >= value:
|
|
self -= value
|
|
romanNum.append( symbol )
|
|
|
|
return ''.join( romanNum )
|
|
|
|
n = int( 56 )
|
|
print( n, n.roman() )
|
|
|
|
# alias int.roman() not to change assert lines
|
|
roman = int.roman
|
|
|
|
assert roman( 11 ) == "XI", "11 should return XI"
|
|
assert roman( 60 ) == "LX", "60 should return LX"
|
|
assert roman( 78 ) == "LXXVIII", "78 should return LXXVIII"
|
|
assert roman( 4 ) == "IV", "4 should return IV"
|
|
assert roman( 99 ) == "XCIX", "99 should return XCIX" |