高级python代码提供错误的输出

时间:2015-01-20 10:49:04

标签: python

变量 cubes_by_four 应仅包含数字1到10的多维数据集,前提是该多维数据集可被4整除。 我试过 -

cubes_by_four = [i for i in range(1,10) if (i**3)%4 == 0]
print cubes_by_four

我的输出是 -

[2, 4, 6, 8]

问题是 - 哎呀,再试一次。看起来cubes_by_four是错误的长度。它应该有5个值。

在线教程学习网站codeacademy.com给我错误..
我应该在哪里犯错误?请帮助我。

2 个答案:

答案 0 :(得分:3)

您的range(1,10)将返回数字1-9。您需要range(1,11)才能获得数字1-10。有关详细信息,请参阅the docs,但请简单地说:

range(start, stop, step)将返回一个列表[start, start + step, start + 2*step, ...],其中最后一个元素将小于停止(假设step为正,如果它是否则它大于停止。)

然后你的列表组成

cubes_by_four = [i for i in range(1,11) if (i**3)%4 == 0]
# [2, 4, 6, 8, 10]

答案 1 :(得分:0)

应该很容易看出,如果一个整数的立方体可以被4整除,那么该数字必须有2作为因子。所以,

cubes = [i**3 for i in range(2, 11, 2)]