Impression de plusieurs arguments en Python

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)&quot ;

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 :

  1. Passez-le comme un tuple :

     print("Le score total pour %s est %s&quot ; % (nom, score))

Un tuple avec un seul élément ressemble à ('this&#39 ;,).

Voici d'autres façons courantes de le faire :

  1. Passez-le comme un dictionnaire :

     print("Le score total pour %(n)s est %(s)s&quot ; % {'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 :

  1. Utilisez le nouveau style de formatage des chaînes de caractères :

     print("Le score total pour {} est {}&quot ;.format(name, score))
  2. 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}&quot ;.format(name, score))
  3. Utilisez le nouveau style de formatage des chaînes de caractères avec des noms explicites :

     print("Le score total pour {n} est {s}&quot ;.format(n=name, s=score))
  4. Concaténer des chaînes de caractères :

     print("Le score total de &quot ; + str(name) + &quot ; est &quot ; + str(score))

Les deux plus claires, à mon avis :

  1. Passez simplement les valeurs en tant que paramètres :

     print("Total score for&quot ;, name, "is&quot ;, 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 &quot ;, nom, "est &quot ;, score, sep='&#39 ;)

    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
  2. Utilisez le nouveau formatage de la chaîne f dans Python 3.6 :

     print(f'Le score total pour {nom} est {score}&#39 ;)
Commentaires (4)

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))
Commentaires (0)

Essaie juste :

print("Total score for", name, "is", score)
Commentaires (0)