|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 33 ![]() |
Bonjour je met mon 2ème module, une fonction qui cette fois convertie les Chiffre Arabes en Chiffres Romain à sens unique cette fois, toujours pour python 2.7
Attention vous devez impérativement utiliser idle ou autres programme supportant les caractère unicode pour les nombre supérieur à 3.999, car la fonction utilise le caractère unicode 304 en hexadécimal sois 772 en décimal pour le macron des milliers le code Code :
|
||
|
|
00
|
|
|
#2 | ||||
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 709 ![]() |
Salut,
Excusez moi mais votre approche me semble compliquée (au vu du nombre de lignes). Soit un entier N, pour le traduire en chiffre romain, on va: - chercher quel est la plus grande valeur du symbole romain S qu'il dépasse, - avec ce V on accumule un symbole puis on recommence avec N - V. Exemple. Soit N = 14. La liste des (valeurs, symboles) qui nous intéresse est: RMAP = [(10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')] 1ère iteration 14 => le V est RMAP[0][0] (=10) on empile X et on réitère 2eme itération 4 => le V est RMAP[0][3](=4) et on empile IV et on arrête car N=0 On peut traduire cela en Python: Code :
Code :
C'est quand même plus court et plus lisible non? - W PS: Les symboles romains sont représentés par des caractères ASCII < 127. Que Python les représente Unicode ou en bytes, leur conversion dans un charset supporté par la console sera dans ce cas identique.
__________________
Architectures Post-Modernes |
||||
|
|
20
|
|
|
#3 | |||
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 33 ![]() |
Ok merci beaucoup pour ton aide précieux wiztricks
, il est vrai que ton code est plus lisible que le miens je met le nouveau ici et je garde tout de même l'ancien code aux cas ou ça intéresser quelqu'un pour l'ancien code, le nouveau code d'après ton modèleCode :
Citation:
|
|||
|
|
00
|
|
|
#4 | |||
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 709 ![]() |
Salut,
̄X Citation:
on peut y ajouter les tuples (10000, u'X̄\u0304'), (5000, u'V\u0304'), (4000, u'I\u0304V\u0304')... Cela implique qu'on utilise des représentations Unicode plutôt que des bytes ASCII passe partout. La difficulté sera que l'affichage suive côté configuration de la console. Maintenant, vous pourriez très bien réaliser votre application en tkinter, ce qui permettrait peut être de s'affranchir de cela: Regardez ce qu'affiche: Code :
__________________
Architectures Post-Modernes |
|||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com