Seite 1 von 1
Laufvariablen bei for Schleife auslassen
Verfasst: Mittwoch 31. Mai 2006, 15:33
von mep
Hallo,
ich habe folgendes Problem:
Code: Alles auswählen
for i in range(1,10):
if i == 5 or i == 6:
# hier soll eine Anweisung rein, dass in der for-Schleife mit i = 7 weitergemachen werden soll
else:
statement
gibt es da irgendwas, wie ich i = 5 bzw. i = 6 auslassen kann?
WICHTIG: nur im vereinfachten Beispiel trifft dies auf 5 und 6 zu. In Wirklichkeit wird in der if-Abfrage was abgefragt, was nichts mit der Schleife zu tun hat.
Kann mir bitte jemand weiterhelfen.
Gruß, mep
Re: Laufvariablen bei for Schleife auslassen
Verfasst: Mittwoch 31. Mai 2006, 15:40
von gerold
mep hat geschrieben:Code: Alles auswählen
for i in range(1,10):
if i == 5 or i == 6:
# hier soll eine Anweisung rein, dass in der for-Schleife mit i = 7 weitergemachen werden soll
else:
statement
Hi mep!
Du kannst das Schlüsselwort
pass rein tun, dann wird nichts gemacht.
Code: Alles auswählen
for i in range(1,10):
if i == 5 or i == 6:
pass # tu nichts
else:
statement
Allerdings könntest du auch deine Prüfung umdrehen.
oder
mfg
Gerold

Verfasst: Mittwoch 31. Mai 2006, 16:20
von mep
der Vorschlag mit pass hört sich ganz vielversprechend an, leider muss ich 2 Laufvariablen in Folge auslassen. Hier noch einmal mein Problem etwas konkreter:
Code: Alles auswählen
def blabla():
if irgendwas:
statements
else:
t1 = 0
t2 = 0
return t1, t2
def main():
x = #"irgend eine zahl"
tr1 = 1
tr2 = 1
for i in range(1,x):
if tr1 == 0:
tr1 = 1
pass
if tr2 == 0:
tr2 = 1
pass
else:
s = blabla() #hier macht er immer noch mit den zu überspringenden laufvariablen weiter
tr1, tr2 = s
Verfasst: Mittwoch 31. Mai 2006, 17:12
von jens
Du weißt, das du bei range auch ein step angeben kannst, ja?
siehe
http://docs.python.org/lib/built-in-funcs.html#l2h-56
Verfasst: Mittwoch 31. Mai 2006, 18:13
von mep
das mit step ist mir bekannt, bringt mir in dem Fall leider nichts, da sich erst beim Ablauf der Schleife herausstellt, ob und wann ich die beiden Laufvariablen auslassen will. Ansonsten würde es passen.
Verfasst: Mittwoch 31. Mai 2006, 18:16
von jens
Nebenbei... Ich würde dazu
continue nehmen...

Verfasst: Donnerstag 1. Juni 2006, 08:24
von mep
mit continue klappts. Ich hab zwar schon irgendwann gelesen, dass es das continue gibt, wenn man es dann aber zum ersten mal braucht, dann fallen einem die richtigen Lösungen nicht ein. Vor allem mir als totalem Programmieranfänger gehts so.
Vielen Dank für die Antworten!
Gruß, mep