2016-06-14 2 views
1

Почему if не работает в ниже генератораПочему этот генератор не работает в Python

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

counter = mygen(5) 

next(counter) 
1 
next(counter) 
StopIteration 

но while делает?

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

Вы сравниваете, если на время? Для циклов сравнимы с циклами. –

ответ

0

Цикл while сравнивает n и m многократно (до тех пор, пока условие ложно), тогда как if утверждение сравнивает их один раз и затем заканчивает. Оператор if работает, просто не так, как вы ожидаете.

Смежные вопросы