Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #3840

Re: Mon code est lourd

From Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid>
Newsgroups fr.comp.lang.python
Subject Re: Mon code est lourd
Date 2022-05-06 11:30 +0200
Organization Université de Strasbourg
Message-ID <87v8ujuhy1.fsf@universite-de-strasbourg.fr.invalid> (permalink)
References <62742832$0$22051$426a74cc@news.free.fr> <87zgjvvi8j.fsf@universite-de-strasbourg.fr.invalid> <t528sl$1oog$1@gioia.aioe.org>

Show all headers | View raw


Dominique <zzz@aol.com.invalid> writes:

> Le 05/05/2022 à 22:26, Alain Ketterlin a écrit :
>
>> dic = { "{:02d}".format (i+1) : [] for i in range (12) }
>
> Je ne connaissais pas du tout cette méthode pour formater un
> dictionnaire. C'est très intéressant, merci :-)

Pour être précis : il ne s'agit pas de formater un dictionnaire, mais de
formater des nombres qui servent de clés dans le dictionnaire.

En fait, je préfère « "%02d" % (i+1) » mais c'est parce que j'ai plus
l'habitude de printf en C.

> Je découvre l'utilisation du d après avoir, par hasard, testé x
> (hexadécimal) puis, bien sûr, o pour octal et b pour binaire.

Oui, ce sont toutes les façons de formater un nombre entier. "02d"
signifie "écriture décimale" (d) sur 2 caractères au moins, en
remplissant à gauche avec des "0" si nécessaire.

> Je comprends moins bien la sortie avec c et surtout au-delà de 8 :

"c" signifie caractère, le préfixe "0" est pris comme caractère de
remplissage, et le "2" signifie toujours la largeur minimale du
résultat.

> '0\x08': [],
> '0\t': [],
> '0\n': [],
> '0\x0b': [],
> '0\x0c': []

Cela revient à demander de formater des caractères de codes 8, 9, etc.
sur 2 caractères. Toutes les chaînes ci-dessus ont bien une longueur 2,
mais il faut utiliser des notations pour représenter ceux qui n'ont pas
de glyphe particulier (tous ici). Avec "{:02c}".format(97), on obtient
'0a' ('a' est le caractère de code 97). Le cas de 9 et 10 est spécial
parce qu'il existe une notation, mais '\t' par exemple a exactement le
même sens que '\x09' (et '\n' que '\0x0a').

-- Alain.

Back to fr.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Mon code est lourd yves <yves@free.invalid> - 2022-05-05 19:40 +0000
  Re: Mon code est lourd yves <yves@free.invalid> - 2022-05-05 19:42 +0000
    Re: Mon code est lourd yves <yves@free.invalid> - 2022-05-05 19:43 +0000
      Re: Mon code est lourd yves <yves@free.invalid> - 2022-05-05 19:47 +0000
        Re: Mon code est lourd yamo' <user@tld.invalid> - 2022-05-09 07:56 +0000
          Re: Mon code est lourd yves <yves@free.invalid> - 2022-05-09 08:32 +0000
  Re: Mon code est lourd Benoit Izac <use.reply.to@INVALID.ADDRESS> - 2022-05-05 22:12 +0200
    Re: Mon code est lourd yves <yves@free.invalid> - 2022-05-06 13:22 +0000
  Re: Mon code est lourd Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2022-05-05 22:26 +0200
    Re: Mon code est lourd Dominique <zzz@aol.com.invalid> - 2022-05-06 06:40 +0200
      Re: Mon code est lourd Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2022-05-06 11:30 +0200
        Re: Mon code est lourd Dominique <zzz@aol.com.invalid> - 2022-05-06 15:43 +0200
          Re: Mon code est lourd Eric Demeester <neuneu@potiron.invalid> - 2022-05-08 12:19 +0200
    Re: Mon code est lourd yves <yves@free.invalid> - 2022-05-06 13:42 +0000
      Re: Mon code est lourd Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2022-05-06 21:46 +0200
        Re: Mon code est lourd yves <yves@free.invalid> - 2022-05-06 20:50 +0000

csiph-web