ged <gedeon.legaut@???> a écrit :
> Bonjour,
>
> Je viens de me faire un script python qui calcule les mensualités d'un
> prêt et j'affiche les résultats avec la fonction "print".
>
> Je voudrais que par exemple 15000 € apparaisse sous la forme 15 000 €
> avec un espace entre 15 et 000.
>
> Je n'ai pas trouvé comment faire avec les options de format : pour
> l'instant, j'ai "%10.2f".
>
> Est-ce qqn aurait une idée ?
>
> Merci et bonne journée
> Gédéon
Bonjour Gédéon,
Je ne connais rien à Python, mais j'avais voulu faire exactement ça en
Perl, il y a quelques années, et voici comment j'avais fait : tu peux
peut-être t'en inspirer pour faire quelque chose d'analogue en Python.
1) Tu retournes le nombre que tu veux afficher ( sa partie entière, si
c'est un nombre à virgule ), considéré temporairement comme une chaîne
de caractères, avec une fonction miroir ( reverse, en Perl ) :
my $titi = "1234567890";
my $toto = reverse $titi;
print $toto; ==> "0987654321"
2) Avec une expression rationnelle toute simple, tu remplaces les
groupes de trois chiffres par la même chose suivie du caractère que tu
veux utiliser pour grouper les milliers ( espace en France, virgule
aux U.S.A., etc. ) :
$toto =~ s/(\d{3})/$1 /g;
print $toto ==> "098 765 432 1"
3) Tu retournes à nouveau le résultat, et voilà, le tour est joué :
print reverse $toto ==> "1 234 567 890"
Je ne prétends pas que ce soit idéal, mais ça marche, et ça ne doit
pas être très compliqué à traduire en Python. Cela dit, j'aimerais
bien savoir à quoi Patrice fait allusion, précisément, quand il dit
que Perl gère ça nativement depuis 15 ans : ma solution fonctionne,
mais je suis loin d'être un expert en Perl, et il y a probablement
plus simple.
Voilà, j'espère que ça peut t'aider, même si j'arrive un peu après la
bataille.
--
Marc
Mail : marc.terrier [at] free.fr
Site :
http://marc.terrier.free.fr