2012-10-03 15 views
12

Ich bin neu in Python, und ich frage mich, wie mehrere Werte drucken, ohne dass der zusätzliche Speicherplatz dazwischen hinzugefügt wird. Ich möchte die Ausgabe ab anstatt a b ohne print zweimal nennen:Drucken ohne Leerzeichen in Python 3

print("a", end="") 
print("b") 

Auch ich habe den folgenden Code:

a = 42 
b = 84 

und ich möchte ihre Werte als a = 42, b = 84 drucken, aber wenn ich do

print("a = ", a, ", ", b = ", b) 

zusätzliche Leerzeichen hinzugefügt werden (es gibt a = 42 , b = 84)

Während die Java-Stil,

print("a = " + a + ", b = " + b) 

wirft ein TypeError.

Antwort

18

Sie können über die sep Parameter der Räume, um loszuwerden:

>>> print("a","b","c") 
a b c 
>>> print("a","b","c",sep="") 
abc 

Ich weiß nicht, was Sie unter „Java-Stil“ bedeuten; In Python können Sie keine Zeichenfolgen (sagen wir) ganzen Zahlen auf diese Weise hinzufügen, obwohl wenn a und b Strings sind, es funktionieren wird. Sie haben mehrere andere Optionen, natürlich:

>>> print("a = ", a, ", b = ", b, sep="") 
a = 2, b = 3 
>>> print("a = " + str(a) + ", b = " + str(b)) 
a = 2, b = 3 
>>> print("a = {}, b = {}".format(a,b)) 
a = 2, b = 3 

und sogar (obwohl ich dies in der Regel nicht empfehlen, es ist praktisch, manchmal, und es hat keinen Sinn, so zu tun sonst):

>>> print("a = {a}, b = {b}".format(**locals())) 
a = 2, b = 3 
>>> print("b = {b}, a = {a}".format(**locals())) 
b = 3, a = 2 
0

On this page Die Antwort ist, Ihren normalen Text zu drucken und am Ende zu verwenden sep="".

So ist der Befehl

print("Hole", hole, "Par", par, sep="") 

geben

"Hole1Par4" 

davon aus, dass hole==1 und par==4.

0

Sie können auch

print("%d%d" %(a,b)) 

zu drucken a und b nicht durch Leerzeichen in Form eines formatierten String getrennt verwenden. Dies ist ähnlich wie in c.