Python 为什么';我的生成器功能是否生成正确的值?

Python 为什么';我的生成器功能是否生成正确的值?,python,python-3.x,Python,Python 3.x,我的编程类有一个任务,要编写一个生成器函数,该函数以int(n)和生成器(gen)作为参数,并生成给定生成器的第一个n元素。我写道: from typing import Iterator, Any def basic_generator(n): # Just a generator function to be able to test it out while True: yield n n += 1 def tryout(n: int, gen

我的编程类有一个任务,要编写一个生成器函数,该函数以int(
n
)和生成器(
gen
)作为参数,并生成给定生成器的第一个
n
元素。我写道:

from typing import Iterator, Any

def basic_generator(n):  # Just a generator function to be able to test it out
    while True:
        yield n
        n += 1

def tryout(n: int, gen: Iterator[Any]) -> Iterator[Any]:
    i = 0
    while i < n:
        next(gen)
        yield i
        i = i + 1
通过键入import Iterator,任意
def basic_生成器(n):#只需一个生成器功能即可测试
尽管如此:
产量
n+=1
def试用(n:int,gen:Iterator[Any])->Iterator[Any]:
i=0
而i

在我收到的反馈中,它告诉我这是错误的,但没有说明原因。我知道它不起作用,但我不明白为什么。有人能给我解释一下吗?

您正在
生成
而不是。。。更改为
下一代(gen)

使用
for
循环,而不是
while
,也会更干净:

def试用(n:int,gen:Iterator[Any])->Iterator[Any]:
对于范围内的u(n):
下一代产量

不确定,但是
tryout
函数调用
basic\u生成器
generator,但它实际上不使用返回值。