Print gibt immer Klammer und Komma aus

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
PeterL
User
Beiträge: 95
Registriert: Samstag 6. März 2021, 18:39

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...
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@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
Zuletzt geändert von rogerb am Montag 9. August 2021, 16:31, insgesamt 1-mal geändert.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

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
PeterL
User
Beiträge: 95
Registriert: Samstag 6. März 2021, 18:39

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...
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

@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=" , ")
Benutzeravatar
snafu
User
Beiträge: 6871
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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. 🤷‍♂️
Benutzeravatar
__blackjack__
User
Beiträge: 14056
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten