C'est n'importe quoi comme argument de vouloir supprimer le % parce les tuples singleton sont laids.
Non, j'essayais de dire que .format() n'a pas deux formes pour les arguments indexés (en opposition aux arguments nommés) :
* "%s" % x
* "%s" % (a, b)
Dans le 1er cas, le comportement change selon que x est un tuple ou non. On peut tomber dans le panneau.
Tandis qu'avec format :
* "{0}".format(x)
* "{1}, {2}".format(a, b)
La syntaxe est homogène et ne prête à confusion. Pour reproduire le comportement « args=("cle", "valeur"); "%s=%s" % args », on doit utiliser le caractère étoile qui indique explicitement d'on « déroule » le tuple : "{0}={1}".format(*args).
[^] # Re: J'aime pas les %
Posté par Victor STINNER (site web personnel) . En réponse au journal Il faut sauver le soldat %. Évalué à 3.
Non, j'essayais de dire que .format() n'a pas deux formes pour les arguments indexés (en opposition aux arguments nommés) :
* "%s" % x
* "%s" % (a, b)
Dans le 1er cas, le comportement change selon que x est un tuple ou non. On peut tomber dans le panneau.
Tandis qu'avec format :
* "{0}".format(x)
* "{1}, {2}".format(a, b)
La syntaxe est homogène et ne prête à confusion. Pour reproduire le comportement « args=("cle", "valeur"); "%s=%s" % args », on doit utiliser le caractère étoile qui indique explicitement d'on « déroule » le tuple : "{0}={1}".format(*args).