Re: question formatage de printf

トップ ページ

このメッセージに返信
著者: Patrice Karatchentzeff
日付:  
To: Marc TERRIER
CC: guilde
新しいトピック: Re: question formatage de printf - python
題目: Re: question formatage de printf
Le 28 mars 2011 11:09, Marc TERRIER <marc.terrier@???> a écrit :
> 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"


olalal...

sub FormatNumber {
    my( $Number ) = @_;
    while( $Number =~ s/^(-?\d+)(\d{3})/$1 $2/ ){};
    return( $Number );
}


Sinon, on doit pouvoir s'amuser avec les locales mais j'ai un peu la
flemme de chercher...

PK


--
      |\      _,,,---,,_       Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:p.karatchentzeff@free.fr
     |,4-  ) )-,_. ,\ (  `'-'  http://p.karatchentzeff.free.fr
    '---''(_/--'  `-'\_)