Hilfe bei einem Problem mit meiner Python-Schleife! 🐍?

4 Antworten

und es werden immer alle Zahlen ausgegeben.

Klar. Genau das hast du hier geschrieben:

 if i % 2 == 0:
    print(i)
 else:
    print(i)

Egal ob gerade oder nicht, du machst in jedem Fall dasselbe: du gibst die Zahl aus.

Deine Schleife ist falsch

Das Problem ist, dass du sowohl die geraden als auch die ungeraden Zahlen druckst. In deinem else-Block steht ebenfalls ein print(i), weshalb jede Zahl ausgegeben wird, was ja gar keinen Sinn macht.

entferne den else-Block, dann sollte es gehen

Woher ich das weiß:Berufserfahrung – Softwareentwickler C#
Aber irgendwie scheint meine Schleife die Zahlen nicht richtig zu filtern, und es werden immer alle Zahlen ausgegeben.

Die Schleife arbeitet korrekt. Nur deine Abfrage darin ist .... Quark!

Wenn i Modulo 2 = 0 ist, dann soll die Zahl ausgegeben werden. Andernfalls gibst du die Zahl aber auch aus.

Es spielt also gar keine Rolle, was das Ergebnis deiner Bedingung ist!
If und Else tun exakt das Gleiche! Genau hier ist der Fehler!

for i in range(1, 11):
  if i % 2 == 0:
    print(i)
  
  else:
    continue

oder besser:

for i in range(1, 11):
  if i % 2 == 0:
    print(i)