Wieso wird meine For Schleife in Python nicht ausgeführt?
Hey, ich hätte da eine Frage. Ich bin gerade beim Anfang, für eine Vokabel Lern Anwendung in Python. Jedoch wird meine For Schleife aus irgendeinem Grund nicht ausgeführt.
Das ist mein Code:
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
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")
Danke im Voraus. Grüße Alex
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!