Seite 1 von 1

Print gibt immer Klammer und Komma aus

Verfasst: Montag 9. August 2021, 16:16
von PeterL
Hallo Leute,

ich möchte folgende Variablen mit der Print Funktion in der Console ausgeben.
Nur leider werden auch Klammern und Kommas ausgegeben.

ausgabe= zaehler,multiplikation ,verdopple_die_zahl, zaehler,subtraktion, ergebniss

print ausgabe

(2, 5, 2, 2, 7, 3). So sieht die Console Ausgabe aus.

Und so sollte Sie aussehen
2 5 2 2 7 3

Die Variablen enthalten ganz normale Zahlen.
Woran kann es liegen ?

Danke...

Re: Print gibt immer Klammer und Komma aus

Verfasst: Montag 9. August 2021, 16:29
von rogerb
@Peterl,

hier stehen auf der rechten Seite des "=" 5 Variablen, Links aber nur eine.

Code: Alles auswählen

ausgabe= zaehler,multiplikation ,verdopple_die_zahl, zaehler,subtraktion, ergebniss
Daher werden alle 5 Variablen von Rechts, auf der linken Seite in ein Tuple gepackt.

Damit es so aussieht:
2 5 2 2 7 3

Kannst du das machen:

Code: Alles auswählen

" ".join(map(str, ausgabe))
Damit werden die Tuple-Werte in einen String geschrieben und jeweils ein Leerzeichen dazwischen gesetzt

Re: Print gibt immer Klammer und Komma aus

Verfasst: Montag 9. August 2021, 16:30
von __deets__
Weil du eine Datenstruktur ausgibst. Ein Tupel. Das du print ohne Klammer benutzt legt nahe, das du noch Python 2 verwendest. Das ist seit fast 2 Jahren “tot”. Benutze Python 3, unter anderem weil du damit einfach

print(*ausgabe)

machen kannst. Beachte den Stern.

Re: Print gibt immer Klammer und Komma aus

Verfasst: Montag 9. August 2021, 16:33
von rogerb
print(*ausgabe)
Noch besser!

So hätte man nur noch etwas mehr Flexibilität

Code: Alles auswählen

" - ".join(map(str, ausgabe))
Zum Beispiel könnte man Bindestriche oder was auch immer dazwischen setzen

Re: Print gibt immer Klammer und Komma aus

Verfasst: Montag 9. August 2021, 16:50
von PeterL
Hallo Leute,

danke für die Antworten, ich benutze die Lernumgebung TigerJython, die Basiert auf Python 2. Ich bin Anfänger und beschäftige mich gerade mit Print und Variablen.

Ich habe das Beispiel ausprobiert. " - ".join(map(str, ausgabe)) es scheint zu funktionieren.

Danke...

Re: Print gibt immer Klammer und Komma aus

Verfasst: Montag 9. August 2021, 18:27
von Sirius3
@rogerb: dass ein Tuple erzeugt wird, liegt daran, dass da ein Ausdruck mit Kommas steht.
Die größere Flexibilität hat man auch mit `print`:

Code: Alles auswählen

print(*ausgabe, sep=" , ")

Re: Print gibt immer Klammer und Komma aus

Verfasst: Montag 9. August 2021, 20:17
von snafu
Ich finde das mit print() sogar eleganter gelöst. Die Leute nutzen viel zu wenig die ganzen Features der print() Funktion. Vielleicht ja weil man von 2.x kommt und nie richtig mit dem "neuen" print() warm geworden ist. 🤷‍♂️

Re: Print gibt immer Klammer und Komma aus

Verfasst: Montag 9. August 2021, 23:11
von __blackjack__
Ich finde das oft zu speziell. Wenn ich *eine* Zeichenkette mit einem Ergebnis zusammenstelle, kann ich damit machen was ich will. Es mit `print()` ausgeben. Oder in eine Datei speichern. Oder in eine Datenbank. In einer GUI anzeigen. Mit einer anderen Funktion ausgeben (z.B. `rich.print()` oder eine Logging-Funktion) In Unit-Tests mit einer erwarteten Zeichenkette vergleichen. Und so weiter.