Dans la philosophie de Python, il ne devrait exister qu'un seul moyen à la fois optimal et unique pour faire une tâche en particulier. L'avantage du caractère % utilisé dans le formatage, et qu'il est concis et proche du C, donc facile à adopter pour des personnes qui connaissent déjà ce langage.
Par exemple :
num_loto = 42
je_gagne = 10000
print "mon numero de loto est %d, je gagne %d"%(num_loto, je_gagne)
Maintenant, cette caractéristique faisait double emploi avec l'utilisation des dictionnaires :
ma_phrase = "bonjour %(perso1)s, bonjour %(perso2)s"%{'perso1':'julia','perso2':'franz'}
print ma_phrase
On a aussi les templates :
import string
ma_phrase = string.Template('$arg1 additionne a $arg2 donne $arg3')
ma_phrase.substitute(arg1='1', arg2='2', arg3='3')
print ma_phrase
Tout ça fait qu'il est difficile de s'y retrouver pour un débutant qui voudrait apprendre ce langage. Quel outil de formatage ? Dans quelle condition ? Et on s'éloigne alors de la philosophie de Python.
Ceux qui viennent du C se retrouveront facilement dans le formatage par arguments dans la chaînes, ce qui est un ersatz et est vraiment hétérogène avec le reste du langage.
Python3, en cassant la compatibilité ascendante, vient résoudre ce genre de petits problèmes du langage.
Mais les nostalgiques protestent, parce que ça va demander des efforts de se ré-adapter alors qu'on avait déjà une méthode connue.
[^] # Re: J'ai rien compris...
Posté par dkremer . En réponse au journal Il faut sauver le soldat %. Évalué à 5.
Par exemple :
num_loto = 42
je_gagne = 10000
print "mon numero de loto est %d, je gagne %d"%(num_loto, je_gagne)
Maintenant, cette caractéristique faisait double emploi avec l'utilisation des dictionnaires :
ma_phrase = "bonjour %(perso1)s, bonjour %(perso2)s"%{'perso1':'julia','perso2':'franz'}
print ma_phrase
On a aussi les templates :
import string
ma_phrase = string.Template('$arg1 additionne a $arg2 donne $arg3')
ma_phrase.substitute(arg1='1', arg2='2', arg3='3')
print ma_phrase
Tout ça fait qu'il est difficile de s'y retrouver pour un débutant qui voudrait apprendre ce langage. Quel outil de formatage ? Dans quelle condition ? Et on s'éloigne alors de la philosophie de Python.
Ceux qui viennent du C se retrouveront facilement dans le formatage par arguments dans la chaînes, ce qui est un ersatz et est vraiment hétérogène avec le reste du langage.
Python3, en cassant la compatibilité ascendante, vient résoudre ce genre de petits problèmes du langage.
Mais les nostalgiques protestent, parce que ça va demander des efforts de se ré-adapter alors qu'on avait déjà une méthode connue.