### Ce script est entièrement autonome. Changez l'extension du nom de fichier en .py
### et vous pourrez l'exécuter en ligne de commande comme cela:
### python chiffres_romains_arabes.py

def rom2ar(rom):
    """ Issu de la liste de diffusion du tuteur en Python:
    János Juhász janos.juhasz à VELUX.com
    retourne l'équivalent arabe d'un chiffre romain
    
    La fonction est vraiment brillante, donc je l'ai parsemée d'instructions
    print pour montrer pourquoi elle fonctionne.
    """
    roman_codec = {'M':1000, 'D':500, 'C':100, 'L':50, 'X':10, 'V':5, 'I':1}
    roman = rom.upper()
    roman = list(roman)
    roman.reverse()
    decimal = [roman_codec[ch] for ch in roman]
    result = 0
    print(f"Pour le chiffre romain: {rom.upper()}\nliste des caractères romains traduits dans leurs équivalents arabes,\nalors à l'envers: {decimal}\n")
    while len(decimal):
        act = decimal.pop()
        print(f"decimal.pop() retourne: {act}")
        if len(decimal) and act < max(decimal):
            act = -act
            print(f"résultat en cours: {result} + {act} = {result + act}\nnégatif car {abs(act)} est inférieur à la valeur maximale de la liste qui est: {max(decimal)}")
        else:
            print(f"résultat en cours: {result} + {act} = {result + act}")
        print(f"notre liste de chiffres décimaux équivaut maintenant à: {decimal}\n\n")
        result += act
        print("BOUCLE!")

    return result
    

print(rom2ar("mmcdlxxxix"))
print("Brillant, n'est-ce pas ?")