C'est juste un extrait de mon code :
print("Total score for %s is %s ", name, score)
Mais je veux que ça s'imprime :
"Le score total de (nom) est de (score)" ;
où name
est une variable dans une liste et score
est un nombre entier. Je suis en Python 3.3, si cela peut vous aider.
Il y a plusieurs façons de le faire. Pour corriger votre code actuel en utilisant le formatage %
, vous devez passer un tuple :
Passez-le comme un tuple :
print("Le score total pour %s est %s" ; % (nom, score))
Un tuple avec un seul élément ressemble à ('this' ;,)
.
Voici d'autres façons courantes de le faire :
Passez-le comme un dictionnaire :
print("Le score total pour %(n)s est %(s)s" ; % {'n' : nom, 's' : score}))
Il existe également un nouveau style de formatage des chaînes de caractères, qui peut être un peu plus facile à lire :
Utilisez le nouveau style de formatage des chaînes de caractères :
print("Le score total pour {} est {}" ;.format(name, score))
Utilisez le nouveau style de mise en forme des chaînes avec les nombres (utile pour réorganiser ou imprimer le même nombre plusieurs fois) :
print("Le score total pour {0} est {1}" ;.format(name, score))
Utilisez le nouveau style de formatage des chaînes de caractères avec des noms explicites :
print("Le score total pour {n} est {s}" ;.format(n=name, s=score))
Concaténer des chaînes de caractères :
print("Le score total de " ; + str(name) + " ; est " ; + str(score))
Les deux plus claires, à mon avis :
Passez simplement les valeurs en tant que paramètres :
print("Total score for" ;, name, "is" ;, score)
Si vous ne voulez pas que les espaces soient insérés automatiquement par print
dans l'exemple ci-dessus, changez le paramètre sep
:
print("Score total pour " ;, nom, "est " ;, score, sep='' ;)
Si vous utilisez Python 2, vous ne pourrez pas utiliser les deux derniers car print
n'est pas une fonction dans Python 2. Vous pouvez, cependant, importer ce comportement depuis __future__
:
from __future__ import print_function
Utilisez le nouveau formatage de la chaîne f
dans Python 3.6 :
print(f'Le score total pour {nom} est {score}' ;)
Pour rester simple, j'aime personnellement la concaténation de chaînes de caractères :
print("Total score for " + name + " is " + score)
Elle fonctionne aussi bien avec Python 2.7 que 3.X.
NOTE : Si score est un int, vous devez le convertir en str :
print("Total score for " + name + " is " + str(score))