Python Leerzeichen zwischen variablen?

4 Antworten

Hey,

Du sagst einfach 

print var1 + " " + var2

zu empfehlen wäre es auch z.B. Platzhalter zu benutzen also:

print "%s %s" % (var1, var2)

der vorteil gegenüber + ist dass du das was in var1 und var2 steht direkt in ein string konvertierst (dafür steht das "s" in "%s")

Wenn du nämlich sagst var1 + var2, und in var1 ein int drin steht und in var 2 ein string, gibt es einen Fehler da du ja versuchst eine zahl mit einem String zu addieren.

MfG

Freddy

jonahgrothus 
Fragesteller
 30.04.2016, 16:55

klappt leider immer noch nicht er schreibt immer noch kein Leerzeichen dazwischen.

0
jonahgrothus 
Fragesteller
 30.04.2016, 16:57

vielleicht hatte ich sagen sollen das ich es im module OS benutze das ist mein script import OS x = raw_input("irgendwas") y = raw_input("irgendwas") os.system("echo" + x + y)

0
xXFreddy  30.04.2016, 18:05
@jonahgrothus

Also ich habe es gerade mal bei mir getestet wenn der Code wie folgt aussieht sollte es aber gehen:

import os
x = raw_input("first var")
y = raw_input("second var")

os.system("echo %s %s" % (x, y))

#oder in deinem aufbau 
os.system("echo " + x + " " + y)

aber was mir aufgefallen ist (was wahrscheinlich auch dein Fehler ist) du musst einfach nach dem "echo" ein leerzeichen setzen

also genau so: os.system("echo ")

0
jonahgrothus 
Fragesteller
 01.05.2016, 13:43

danke jetzt klappt alles

0

Guten Abend,

es gibt durchaus unterschiedliche möglichkeiten wie andere Nutzer schon beschrieben haben. Ich benutze ausschließlich 'format' dazu, da ich es als sehr "mächtig" empfinde aber es auch sehr gut lesen kann. (Eigene Meinung)

print("{0} {1}".format("irgendwas", "irgendwas"))

Du kannst auch die Zahlen weglassen solange du nichts kompliziertes machst.

z.B

a = [1,2,3]
print("{0[0]} {0[1]} {0[2]}".format(a))

Hier findest du mehr informationen darüber https://docs.python.org/3.1/library/string.html (7.1.3. Format String Syntax)

Regards



TeeTier  01.05.2016, 15:30

Sehr schön, dass mal jemand auf "format()" hinweist. :)

Eigentlich gilt die Form der Formatierung mithilfe von % als veraltet, und wird laut den API-Docs nicht mehr empfohlen.

Leider ist diese Form aber die schnellste Quick-n-Dirty Möglichkeit und wird deshalb vermutlich nicht allzu schnell aussterben.

1

Neben dem Ansatz von xXFreddy kannst du auch folgendes machen:

vars = (var1, var2)
print(' '.join(vars))
TeeTier  01.05.2016, 17:07

PS: Der Standardseparator bei Pythons print() ist sowieso ein Leerzeichen, also wenn es dir nur auf die Ausgabe ankommt, kannst du auch einfach Folgendes schreiben:

print(var1, var2)
0

Du kannst es auch so machen:

print(var1+" "+var2)

Mit vielen Grüßen Green.