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.

Code: Alles auswählen

if i not in (5, 6):
    statement
oder

Code: Alles auswählen

if i <> 5 and i <> 6:
    statement
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... :wink:

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