Python 为什么';我的生成器功能是否生成正确的值?
我的编程类有一个任务,要编写一个生成器函数,该函数以int(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
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,但它实际上不使用返回值。