Print schreibt nur in mehreren Zeilen

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
Vinz12
User
Beiträge: 3
Registriert: Donnerstag 7. März 2019, 19:14

Hallo,

ich bin sehr unerfahren was Programmieren angeht und habe mich nach ein paar Videos mal an einem Art Zahlen-/Buchstabengenerator versucht:

Code: Alles auswählen

from random import shuffle

liste = "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ä Ö Ü ẞ \
        a b c d e f g h i j k l m n o p q r s t u v w x y z ä ö ü ß \
        1 2 3 4 5 6 7 8 9 0 \
        ° ^ ! " "§" "$" "%" "&" "/" "{" "}" "(" ")" "[" "]" "=" "?" "\" ` ´ + * ~ # ' , ; . : - _ < > | ".upper().split()
shuffle(liste)

for länge in range(2):
            el1=liste.pop()
            print("{}".format(el1))
Mein Problem ist jetzt, dass wenn ich diesen Code ausführe, die Buchstaben/Zahlen in mehreren Zeilen ausgegeben werden und nicht in einer. Woran liegt das?

Danke im Vorraus,
Vinz
Benutzeravatar
sparrow
User
Beiträge: 4599
Registriert: Freitag 17. April 2009, 10:28

Weil "print" immer eine Zeile ausgibt.
Vinz12
User
Beiträge: 3
Registriert: Donnerstag 7. März 2019, 19:14

sparrow hat geschrieben: Donnerstag 7. März 2019, 20:23 Weil "print" immer eine Zeile ausgibt.
und wie könnte ich das in einer Zeile ausgeben?
Benutzeravatar
sls
User
Beiträge: 480
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Country country = new Zealand();

Was genau hast du denn vor? Du hast einen String der durch split() zu einer Liste mit einzelnen Elementen wird. Mit pop() entfernst du immer ein Element dieser Liste und weist es einer Variablen zu, die du im Anschluss ausgibst. Ich vermute, du möchtest den String durchmischen und wieder so ausgeben? Dann musst du aus der Liste wieder einen String machen, den du dann printen kannst.

Machen kannst du das mit " ".join(liste)
When we say computer, we mean the electronic computer.
Benutzeravatar
__blackjack__
User
Beiträge: 14251
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Vinz12: Brauchst Du danach `liste` noch? Falls nicht, sieht mir das eher nach einem Fall für `random.sample()` aus.

Und Dir ist klar, das die Wahrscheinlichkeit für Buchstaben höher ist, weil die effektiv alle zweimal vorkommen‽ Und es können natürlich auch zwei gleiche Buchstaben als Ergebnis heraus kommen. Soll das so?
“All tribal myths are true, for a given value of 'true'.” — Terry Pratchett, The Last Continent
Benutzeravatar
ThomasL
User
Beiträge: 1385
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

versuchs mal mit

Code: Alles auswählen

print(f"{el1}", end="")
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Vinz12
User
Beiträge: 3
Registriert: Donnerstag 7. März 2019, 19:14

ThomasL hat geschrieben: Donnerstag 7. März 2019, 23:13 versuchs mal mit

Code: Alles auswählen

print(f"{el1}", end="")
Vielen Dank, das hat funktioniert ^^
Benutzeravatar
__blackjack__
User
Beiträge: 14251
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Das formatieren von Zeichenketten als genau die gleiche Zeichenkette macht allerdings wenig Sinn.
“All tribal myths are true, for a given value of 'true'.” — Terry Pratchett, The Last Continent
Antworten