2016-11-03 1 views
0

im assez nouveau à la programmation et en essayant d'apprendre Python. J'ai essayé d'écrire un code simple qui transforme un nombre entier en chiffres romains. Je cherche une méthode pour transposer la liste que j'ai créée en quelque chose comme MCCVI. Pour l'instant c'est suffisant si l'entier exp. 1523 s'écrit comme MDXXIII. Voici mon code:Liste ["M", "C"] à -> MC

a= int(input("Geben sie eine Zahl ein:")) 
M=1000 
D=500 
C=100 
L=50 
X=10 
V=5 
I=1 
liste= ["M","D","C","L","X","V","I"] 
i=0 
erg=[] 

while i < len(liste): 

    while a > eval(liste[i]): 
     a = a- eval(liste[i]) 
     erg += liste[i] 

    i+=1 

print(erg) 
+0

Vous voulez dire que vous voulez joindre une liste avec des chaînes en un seul? –

+0

Peut-être voudrez-vous en savoir plus sur les dictionnaires. plutôt que d'utiliser des variables séparées et 'eval()', vous pouvez mettre toutes ces lettres dans un dictionnaire et l'utiliser pour rechercher la valeur entière de chaque lettre. –

+0

ok merci pour le conseil. –

Répondre

0
a= int(input("Geben sie eine Zahl ein:")) 


roman_map = [(1000, 'M'), (900, 'CM'), (500, 'D'), (400, 'CD'), (100, 'C'), (90, 'XC'),(50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')] 



roman_num = "" 
while a > 0: 
    for i, r in roman_map: 
     while a >= i: 
      roman_num += r 

      a -= i 

print roman