【发布时间】:2017-02-03 18:00:07
【问题描述】:
有时我对 where 使用 return 语句感到困惑。我已经在 codecademy 上完成了 Python 课程,并且我正在通过在线 CS 课程介绍进行到一半,仍然我有时会出错。我明白它的作用,只是我没有正确“得到”它的位置:/
这是相同代码的简短示例。
正确方法:
def product_list(list_of_numbers):
c = 1
for e in list_of_numbers:
c = c * e
return c
错误的方式(我最初做的):
def product_list(list_of_numbers):
c = 1
for e in list_of_numbers:
c = c * e
return c
这对你们大多数人来说可能听起来很傻,但在更大和更复杂的情况下,我会很困惑。如果有人能一劳永逸地向我澄清,我将不胜感激。
【问题讨论】:
-
由于
return返回到达的那一刻,您认为第二个版本中for循环迭代的其余部分可能会发生什么? -
这归结为理解 Python 中的块是什么;您了解缩进如何确定
for循环或product_list函数的一部分吗? -
值得注意的是“正确方式”中的相反情况。虽然您确实按照其他人的解释完成了
for循环中的所有迭代,但您仅在return的最后一次计算中使用了c的值。在这种情况下,您可能希望将c的所有值存储在一个列表中,然后返回该列表。 -
@Vayl:不,因为函数在到达
return时结束。所以for循环仍处于第一次迭代中,您的return结束了函数。循环迭代的其余部分现在不会运行,忽略list_of_numbers中的其他值。 -
@MartijnPieters,啊,我明白了!所以 return 语句实际上结束一个循环。当它在循环外部时,它只会在循环完全完成时结束它。听起来对吗?
标签: python