Unverständlich:Die For-Schleife

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
JEC
User
Beiträge: 7
Registriert: Freitag 26. Juli 2019, 21:12

Hallöchen,
ich habe vor kurzem angefangen mich mit Python zu beschäftigen und stecke, ehrlich gesagt, noch in den Kinderschuhen.
Vor kurzem habe ich mir die Schleifen-Arten angesehen und werde aktuell einfach nicht schlau aus der For-Schleife.
Ich bekam außerdem noch ein Stück Code in die Hand, dass mir irgendwie Kopfschmerzen bereitet.

Hier das Stück Code:

Code: Alles auswählen

x = ["Ich","du","Er/Sie/Es"]

for w in x:
    for y in x:
        print(w)
        print(y)

Hier der Output:

Code: Alles auswählen

Ich
Ich
Ich
du
Ich
Er/Sie/Es
du
Ich
du
du
du
Er/Sie/Es
Er/Sie/Es
Ich
Er/Sie/Es
du
Er/Sie/Es
Er/Sie/Es
Ich verstehe irgendwie nicht, wie es zu diesem Output kam.
Falls mir irgendjemand eine möglichst verständliche Erklärung für die For-Schleife, als auch eine für den Output liefern könnte, wäre ich wirklich dankbar.

LG und viel Dank im voraus
JEC

PS: Sorry, falls diese Frage ein wenig dumm oder dergleichen erscheint.
Benutzeravatar
__blackjack__
User
Beiträge: 14045
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@JEC: Die ``for``-Schleife macht etwas für jedes Element von dem iterierbaren Objekt das nach dem ``in`` steht. Nämlich für jedes Element einmal den Schleifeninhalt ausführen mit dem aktuellen Element an den Namen zwischen ``for`` und ``in`` gebunden. Das war's eigentlich auch schon.

Vielleicht solltest Du einfach mal bei den beiden `print()`-Aufrufen noch etwas dazu ausgeben an dem Du erkennen kannst welche Zeile in der Ausgabe von welchem Aufruf stammt und dann vielleicht nach den beiden `print()`-Aufrufen noch eine Leerzeile ausgeben, damit man besser erkennt was von welchem Durchlauf stammt:

Code: Alles auswählen

In [49]: for w in x:
    ...:     for y in x:
    ...:         print('a', w)
    ...:         print('b', y)
    ...:         print()
    ...:                 
a Ich
b Ich

a Ich
b du

a Ich
b Er/Sie/Es

a du
b Ich

a du
b du

a du
b Er/Sie/Es

a Er/Sie/Es
b Ich

a Er/Sie/Es
b du

a Er/Sie/Es
b Er/Sie/Es
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
JEC
User
Beiträge: 7
Registriert: Freitag 26. Juli 2019, 21:12

Achsooo ,ich habe das mal so versucht und verstehe jetzt. Danke nochmal für die schnelle und verständliche Antwort, __blackjack__.
LG JCE
Antworten