Re: Mon code est lourd

Liste des GroupesRevenir à fcl python 
Sujet : Re: Mon code est lourd
De : alain (at) *nospam* universite-de-strasbourg.fr.invalid (Alain Ketterlin)
Groupes : fr.comp.lang.python
Date : 06. May 2022, 11:30:14
Autres entêtes
Organisation : Université de Strasbourg
Message-ID : <87v8ujuhy1.fsf@universite-de-strasbourg.fr.invalid>
References : 1 2 3
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
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.

Date Sujet#  Auteur
5 May 22 * Mon code est lourd16yves
5 May 22 +* Re: Mon code est lourd5yves
5 May 22 i`* Re: Mon code est lourd4yves
5 May 22 i `* Re: Mon code est lourd3yves
9 May 22 i  `* Re: Mon code est lourd2yamo'
9 May 22 i   `- Re: Mon code est lourd1yves
5 May 22 +* Re: Mon code est lourd2Benoit Izac
6 May 22 i`- Re: Mon code est lourd1yves
5 May 22 `* Re: Mon code est lourd8Alain Ketterlin
6 May 22  +* Re: Mon code est lourd4Dominique
6 May 22  i`* Re: Mon code est lourd3Alain Ketterlin
6 May 22  i `* Re: Mon code est lourd2Dominique
8 May 22  i  `- Re: Mon code est lourd1Eric Demeester
6 May 22  `* Re: Mon code est lourd3yves
6 May 22   `* Re: Mon code est lourd2Alain Ketterlin
6 May 22    `- Re: Mon code est lourd1yves

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal