首页 > 解决方案 > 此功能的解决方案是什么

问题描述

我期待不同的答案,如 0 1 3 6 但答案只有 6。请有人帮我理解它,谢谢!

def func(x):
  res = 0
  for i in range(x):
     res += i
  return res

print(func(4))

标签: pythonpython-3.x

解决方案


return只返回一个值。您打算使用的是yield

def func(x):
  res = 0
  for i in range(x):
     res += i
     yield res

这称为 生成器。您可以使用next逐个查看值,或使用*运算符一次打印所有值:

print(*(func(4)))

果然,你得到了想要的输出:

0 1 3 6

推荐阅读