forked from course-work/week1
Update 03-roman-numerals/roman.py
This commit is contained in:
parent
7311c6644d
commit
11f0b2e045
@ -1,22 +1,14 @@
|
|||||||
class my_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 ) )
|
||||||
|
|
||||||
def roman( self ):
|
for symbol, value in symbols:
|
||||||
romanNum = []
|
while self >= value:
|
||||||
symbols = ( ( 'M', 1000 ), ( 'C', 100 ), ( 'XC', 90 ), ( 'L', 50 ), ( 'X', 10 ),
|
self -= value
|
||||||
( 'IX', 9 ), ('V', 5 ) , ( 'IV', 4 ), ( 'I', 1 ) )
|
romanNum.append( symbol )
|
||||||
|
|
||||||
for symbol, value in symbols:
|
return ''.join( romanNum )
|
||||||
while self >= value:
|
|
||||||
self -= value
|
|
||||||
romanNum.append( symbol )
|
|
||||||
|
|
||||||
return ''.join( romanNum )
|
|
||||||
|
|
||||||
n = my_int( 56 )
|
|
||||||
print( n, n.roman() )
|
|
||||||
|
|
||||||
# alias my_int.roman() not to change assert lines
|
|
||||||
roman = my_int.roman
|
|
||||||
|
|
||||||
assert roman( 11 ) == "XI", "11 should return XI"
|
assert roman( 11 ) == "XI", "11 should return XI"
|
||||||
assert roman( 60 ) == "LX", "60 should return LX"
|
assert roman( 60 ) == "LX", "60 should return LX"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user