【发布时间】:2016-10-03 15:48:16
【问题描述】:
我正在为我的第一个编程课程编写这个 python 代码。昨天它部分工作,但后来我改变了一些东西,现在它只通过了 1 个测试用例。目标是将列表“xs”中的所有偶数相乘,如果没有偶数则返回 1。我做错了什么,我该如何解决?
def evens_product(xs):
product = 2
for i in xs:
if i%2 == 0:
product *= i
return product
else:
return (1)
编辑:Chepner 的解决方案很有效,感谢所有提供帮助的人
【问题讨论】:
-
当列表中有有个偶数时,该函数的返回值是什么?
-
我认为从 product = 2 开始是错误的?不应该是product = 1吗?
-
当出现偶数时,程序应该将列表中的所有偶数相乘并返回最终值(例如,如果列表是 [2,4,6,8]应该返回 384) 并且仅当不存在偶数时才返回 1。编辑:Product = 1 也不起作用,不确定它应该等于什么
-
您没有显示任何失败的测试用例或其输出,因此很难知道您希望看到什么行为。我猜你打算以
product = 1开头。 -
你的代码有几个问题:第一个是你以
product = 2而不是product = 1开头;第二个错误是您应该在遍历循环的所有元素之后(即在 for 循环之后)返回答案。目前,代码在找到第一个偶数后返回。如果您遵循这种方法,您甚至不需要底部的 else 语句。
标签: python list numbers multiplication