Mehrere Argumente in Python drucken

Dies ist nur ein Ausschnitt aus meinem Code:

print("Total score for %s is %s  ", name, score)

Aber ich möchte es ausdrucken:

"Gesamtpunktzahl für (Name) ist (Punktzahl)"

wobei "Name" eine Variable in einer Liste und "Punktzahl" eine ganze Zahl ist. Dies ist Python 3.3, falls das überhaupt hilft.

Es gibt viele Möglichkeiten, dies zu tun. Um Ihren aktuellen Code mit der "%"-Formatierung zu korrigieren, müssen Sie ein Tupel übergeben:

  1. Übergeben Sie es als Tupel:

     print("Gesamtpunktzahl für %s ist %s" % (Name, Punktzahl))

Ein Tupel mit einem einzelnen Element sieht aus wie ('dies',).

Hier sind einige andere gängige Möglichkeiten, dies zu tun:

  1. Übergeben Sie es als Wörterbuch:

     print("Gesamtpunktzahl für %(n)s ist %(s)s" % {'n': Name, 's': Punktzahl})

Es gibt auch eine neue Art der String-Formatierung, die etwas leichter zu lesen sein könnte:

  1. Verwenden Sie die neue Formatierung für Zeichenketten:

     print("Gesamtpunktzahl für {} ist {}".format(Name, Punktzahl))
  2. Verwenden Sie die neue String-Formatierung für Zahlen (nützlich für die Neuordnung oder den mehrfachen Ausdruck derselben Zahl):

     print("Gesamtpunktzahl für {0} ist {1}".format(name, punktzahl))
  3. Verwenden Sie die String-Formatierung im neuen Stil mit expliziten Namen:

     print("Gesamtpunktzahl für {n} ist {s}".format(n=name, s=punktzahl))
  4. Konkatenieren Sie Strings:

     print("Gesamtpunktzahl für " + str(Name) + " ist " + str(Punktzahl))

Meiner Meinung nach sind das die beiden klarsten:

  1. Übergeben Sie einfach die Werte als Parameter:

     print("Gesamtpunktzahl für", Name, "ist", Punktzahl)

    Wenn Sie nicht möchten, dass die Leerzeichen im obigen Beispiel automatisch von print eingefügt werden, ändern Sie den Parameter sep:

     print("Gesamtpunktzahl für ", name, " ist ", score, sep='')

    Wenn Sie Python 2 verwenden, können Sie die letzten beiden Parameter nicht verwenden, da "print" in Python 2 keine Funktion ist. Sie können jedoch dieses Verhalten von __future__ importieren:

     from __future__ import print_function
  2. Verwenden Sie die neue f-Zeichenfolgenformatierung in Python 3.6:

     print(f'Gesamtpunktzahl für {Name} ist {Punktzahl}')
Kommentare (4)

Ich persönlich mag die einfache Verkettung von Zeichenketten:

print("Total score for " + name + " is " + score)

Sie funktioniert sowohl mit Python 2.7 als auch 3.X.

HINWEIS: Wenn score ein int ist, dann sollten Sie es in str konvertieren:

print("Total score for " + name + " is " + str(score))
Kommentare (0)

Versuchen Sie es einfach:

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