2016-06-14 10 views
1

Warum if nichtWarum dieser Generator funktioniert nicht in Python

def mygen(m): 
    n = 0 
    if n < m: 
     n = n + 1 
     yield n 

counter = mygen(5) 

next(counter) 
1 
next(counter) 
StopIteration 

aber while tut in dem unten stehenden Generator arbeiten?

def mygen(m): 
    n = 0 
    while n < m: 
     n = n + 1 
     yield n 
+0

vergleichen Sie wann? For-Schleifen sind vergleichbar mit While-Schleifen. –

Antwort

0

Die while Schleife vergleicht n und m wiederholt (bis die Bedingung falsch ist), während die Anweisung if sie einmal vergleicht und dann beendet. Die if Anweisung funktioniert, nur nicht in der Art, wie Sie erwarten.

Verwandte Themen