Python For循环多次返回

Python For循环多次返回,python,printing,return,Python,Printing,Return,我应该用python为我的一门计算机科学课写一个函数。函数应该接受一个startValue,然后递增它,直到达到numberOfValue。这是我目前的职能: def nextNValues(startValue, increment, numberOfValues): result = int(0) for i in range(0, numberOfValues): increase = i * increment result = startValue

我应该用python为我的一门计算机科学课写一个函数。函数应该接受一个startValue,然后递增它,直到达到numberOfValue。这是我目前的职能:

def nextNValues(startValue, increment, numberOfValues):
   result = int(0)
   for i in range(0, numberOfValues):
      increase = i * increment
       result = startValue + increase
   return result
我这样称呼它:

print(nextNValues(5,4,3))

问题是输出只有13。如何使它在每次递增时返回一个数字。例如,5,9,13?我以前的函数一直存在这个问题,但我只是添加和删除了一些东西,没有太多的逻辑来让它工作。我做错了什么?

你应该列出一个清单。在每次迭代过程中,将数字追加到列表中。然后,在最后,只需返回列表。

您应该建立一个列表。在每次迭代过程中,将数字追加到列表中。然后,在最后,只需返回列表。

这是一个完美的使用案例

长话短说,只需使用
收益
而不是
回报

def nextNValues(startValue, increment, numberOfValues):
  result = int(0)
  for i in range(0, numberOfValues):
    increase = i * increment
    result = startValue + increase
    yield result
然后,代码的客户端可以在简单循环中使用它:

for value in nextNValues(...):
  print(value)
或者,如果需要,他们可以使用
list
转换列表。 例如,如果需要打印结果:

print(list(nextNValues(...)))

这是一个完美的用例

长话短说,只需使用
收益
而不是
回报

def nextNValues(startValue, increment, numberOfValues):
  result = int(0)
  for i in range(0, numberOfValues):
    increase = i * increment
    result = startValue + increase
    yield result
然后,代码的客户端可以在简单循环中使用它:

for value in nextNValues(...):
  print(value)
或者,如果需要,他们可以使用
list
转换列表。 例如,如果需要打印结果:

print(list(nextNValues(...)))

请修复缩进。由于您的类既没有处理列表也没有处理生成器,您确定必须返回值吗?也许您的任务只是打印函数中的值?请修复缩进。由于您的类既没有处理列表也没有处理生成器,您确定必须返回值吗?也许您的任务只是打印函数中的值?我们还没有真正使用列表。任务是通过循环来完成。没有办法“通过循环来完成”。您需要某种容器来保存多个值,例如列表。另一种选择是使用生成器,正如丹尼斯建议的那样,但这要先进得多——如果你还没有完成列表,那么生成器肯定不是预期的答案。我们还没有真正使用列表。任务是通过循环来完成。没有办法“通过循环来完成”。您需要某种容器来保存多个值,例如列表。另一种选择是使用发电机,正如丹尼斯建议的那样,但这要先进得多——如果你还没有完成列表,那么发电机肯定不是预期的答案。这不起作用。它最终这样做是因为你试着直接打印它。我演示了如何使用它。如果要打印它,请使用转换到
列表
。这不起作用。它最终这样做是因为你试着直接打印它。我演示了如何使用它。如果要打印,请使用到
列表的转换。