本文实例讲述了Python将阿拉伯数字转换为罗马数字的方法。分享给大家供大家参考。具体实现方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
def numToRomanNum(Num):
"""digital will be converted into Roman numerals,Ex: numToRomanNum(3999)"""
if Num < 1 or Num > 3999 :
print 'The Num must in 1-3999'
else :
NumDic = {
'1' :( 'I' , 'IV' , 'V' , 'IX' ),
'2' :( 'X' , 'XL' , 'L' , 'XC' ),
'3' :( 'C' , 'CD' , 'D' , 'CM' ),
'4' :( 'M' )
}
items = sorted (NumDic.items())
retstr = ''
for item in items:
str = ''
(Num,modNum) = divmod (Num, 10 )
if modNum ! = 0 :
if item[ 0 ] ! = '4' :
if modNum < = 3 :
while modNum > 0 :
str = str .join(['',item[ 1 ][ 0 ]])
modNum - = 1
elif modNum < 5 :
str = item[ 1 ][ 1 ]
elif modNum = = 5 :
str = item[ 1 ][ 2 ]
elif modNum < 9 :
str = item[ 1 ][ 2 ]
while modNum > 5 :
str = str .join(['',item[ 1 ][ 0 ]])
modNum - = 1
else :
str = item[ 1 ][ 3 ]
else :
while modNum > 0 :
str = str .join(['',item[ 1 ][ 0 ]])
modNum - = 1
retstr = str .join(['',retstr])
return retstr
|
希望本文所述对大家的Python程序设计有所帮助。