Python For循环多次返回
我应该用python为我的一门计算机科学课写一个函数。函数应该接受一个startValue,然后递增它,直到达到numberOfValue。这是我目前的职能: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
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(...)))
请修复缩进。由于您的类既没有处理列表也没有处理生成器,您确定必须返回值吗?也许您的任务只是打印函数中的值?请修复缩进。由于您的类既没有处理列表也没有处理生成器,您确定必须返回值吗?也许您的任务只是打印函数中的值?我们还没有真正使用列表。任务是通过循环来完成。没有办法“通过循环来完成”。您需要某种容器来保存多个值,例如列表。另一种选择是使用生成器,正如丹尼斯建议的那样,但这要先进得多——如果你还没有完成列表,那么生成器肯定不是预期的答案。我们还没有真正使用列表。任务是通过循环来完成。没有办法“通过循环来完成”。您需要某种容器来保存多个值,例如列表。另一种选择是使用发电机,正如丹尼斯建议的那样,但这要先进得多——如果你还没有完成列表,那么发电机肯定不是预期的答案。这不起作用。它最终这样做是因为你试着直接打印它。我演示了如何使用它。如果要打印它,请使用转换到
列表
。这不起作用。它最终这样做是因为你试着直接打印它。我演示了如何使用它。如果要打印,请使用到列表的转换。