Wieso wird meine For Schleife in Python nicht ausgeführt?


07.12.2022, 18:50

Ich habe gerade gesehen, dass ich den falschen Code koppiert habe. Auf jeden Fall Danke für das Helfen. Hier ist der Link zur richtigen Frage:

https://www.gutefrage.net/frage/wieso-wird-die-for-schleife-in-python-nicht-ausgefuehrt

2 Antworten

Es sieht so aus, als ob die Schleife innerhalb der if-Anweisung geschrieben wurde. Da der Ausdruck in der if-Anweisung nicht wahr ist, wird die Schleife nie ausgeführt. Versuchen Sie, die Schleife außerhalb der if-Anweisung zu schreiben, damit sie unabhängig von dem Ergebnis der if-Anweisung ausgeführt wird.

Es sieht so aus, als ob in der vorherigen Code-Version ein Problem mit den Einrückungen bestand. In der letzten Zeile innerhalb der if-Abfrage, in der die Variable

zahl2

auf den Wert der Variable

fill

gesetzt wird, fehlt eine Einrückung. Dies führt dazu, dass der folgende Codeblock nicht Teil der if-Abfrage ist, sondern immer ausgeführt wird, unabhängig davon, ob die Bedingung der if-Abfrage erfüllt ist oder nicht.

Um das Problem zu beheben, müssen Sie den Codeblock nach der letzten Zeile innerhalb der if-Abfrage einrücken, damit er Teil der if-Abfrage wird. Hier ist eine korrigierte Version des Codes:


import sys

zahl1= 4 #int(sys.argv[1])

zahl2=14 #int(sys.argv[2])

if zahl1 < zahl2:

  fill= zahl1

  print(zahl1,"\t",zahl2,"\t",fill)

  zahl1 = zahl2

  print(zahl1,"\t",zahl2,"\t",fill)

  zahl2= fill

  # Hier fehlte eine Einrückung

  print(zahl1,"\t",zahl2,"\t",fill)

print(zahl1,zahl2)

for l in range(zahl1,zahl2+1):

  if(l==zahl1):

    print("\t",end=" ")

  print(l,"\t",end=" ")

  if(l==zahl2):

    print("\n")

for j in range(zahl1,zahl2+1):

  for i in range(zahl1,zahl2+1):

    if(i==zahl1):

      print(j,"\t",j*j,"\t",end=" ")

    else:

      print(j*i,"\t",end=" ")

      if(i==zahl2):

        print("\n")

Ich hoffe, das hilft!