2016-07-12 9 views
-1

Ich versuche, meinen Freund Python zu unterrichten und zeigte ihm 3 Methoden zum Drucken Variablen verschiedener Typen ohne die Notwendigkeit, sie in Strings zuerst zu konvertieren, aber er möchte wissen, welchen er verwenden sollte und ich weiß nicht, wie ich habe Python in einer langen Zeit nicht so hoffnungsvoll verwendet werden, können Sie uns helfen:Python - was ist der Unterschied zwischen diesen 3 Methoden zum Drucken von Variablen?

print("There are %d people in total" % num_people) 

oder

print("There are", num_people, "people in total") 

oder

print("There are {} people in total".format(num_people)) 

Ich weiß, dass die Formatierungsmethode andere, leistungsfähigere Zeichenfolgenmanipulationsoperationen ausführen kann, aber andererseits bin ich mir nicht sicher, welche die bevorzugte Methode ist. Ich weiß nicht, warum die erste Methode existiert, da die zweite einfacher scheint.

Irgendwelche Gedanken dazu? Vielen Dank!

Antwort

1

In Bezug auf % vs. .format siehe ähnliche Fragen wie this, wie andere haben darauf hingewiesen.

In Bezug auf

print("There are", num_people, "people in total") 

Das ist wirklich nur eine Bequemlichkeit durch die print() Funktion zur Verfügung gestellt. Anstatt nur ein Argument zu drucken, erlaubt die Signatur mehrere Argumente, die separat in Zeichenfolgen konvertiert und dann mit einem Leerzeichen (standardmäßig) als Trennzeichen verknüpft werden. Dies ist sehr nützlich für eine schnelle Ausgabe mehrerer Objekte, aber im Allgemeinen ungeeignet zum Erzeugen einer formatierten Ausgabe. Nur das Drucken einer Dezimalzahl, die mit hoher Genauigkeit angegeben wird, kann zu einer eingeschränkten Verwendbarkeit führen. Weitere Informationen zu seinen Funktionen finden Sie unter the documentation of print().

+0

Danke, mir ging es hauptsächlich um den Unterschied zwischen dem Drucken mit mehreren Argumenten und der Formatierung. – Mayron

2

Der Python-Style-Guide empfiehlt die Verwendung der format-Methode. Hier ist der Link zu diesem Dokument: "PEP 3101"

+0

Danke, das hat geholfen! – Mayron