Я изучаю использование генераторов в python, но у меня возникла странная проблема.
Как может получиться, что следующий код работает должным образом (например, возвращает следующее число Фибоначчи при каждом вызове функции):
def fibonacci():
current, previous = 0,1
while True:
yield current
current, previous = current + previous, current
fib = fibonacci()
for i in range(0,21):
print(next(fib))
Но когда я напрямую вызываю функцию внутри моего for-цикл, как таковой:
for i in range(0,21):
print(next(fibonacci()))
Он печатает 21 ноль?