仅当立方体可被4整除时,才能打印数字1到10的立方体

时间:2016-07-10 18:17:43

标签: python list

这里的code_cademy一切正常吗?

enter image description here

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

for x in cubes_by_four:
    print x

他们要我打印每个立方体,这个立方体可以被4整除,数字在1到10之间。我在这里做错了什么?

这个符号x^3是否也可以获得x的立方体?如果是,那为什么会导致输出错误?

enter image description here

10 个答案:

答案 0 :(得分:0)

你的范围已关闭。您需要range(1, 11),因为range()的第二个参数是要排除的第一个值range(1, 10)只会为您提供1到9的数字。

答案 1 :(得分:0)

如果要包含值10,则必须将范围更改为range(1, 11),因为的范围包含第二个参数。

在常规Python中,x^3并不意味着取幂,而是二进制操作“按位异或”。这是SageMath(基于Python)中的取幂,但不是常规Python,它使用x**3,或者在代码x*x*x中。

由于您想要在一行中打印出所有列表,包括周围的括号,只需使用print x打印即可。使用它代替最后两行代码。

答案 2 :(得分:0)

当你写range(1,10)时,你包括1但排除10。

所以正确的代码是:

cubes_by_four = [x*x*x for x in range(1,11) if (x*x*x) % 4 == 0]

print cubes_by_four:

将x ** 3用于立方体将是一种很好的做法。

cubes_by_four = [x**3 for x in range(1,11) if (x**3) % 4 == 0]

答案 3 :(得分:0)

  

最后将该列表打印到控制台

>>> cubes_by_four = [x**3 for x in range(1,11) if x**3 % 4 == 0]
>>> print(cubes_by_four)
[8, 64, 216, 512, 1000]

它表示打印列表,而不是将列表中的每个项目打印到控制台

答案 4 :(得分:0)

range的第二个参数不包含在范围内。

介于1和10之间吗?还是1到10?

介于1和10之间为range(2,10)

1到10是range(1,11)

答案 5 :(得分:0)

好的,要记住以下几点: - 1)如果您想要数字1-10,请执行range(1,11),因为排除了最后一个数字,而第一个数字(显然)包括在内。 2)而不是(x*x*x),你可以更好地使用: - pow(x,3),这实际上意味着x代表权力3或x立方。

所以,你的最终代码变成: - cubes = [pow(x,3) for x in range(1,11) if pow(x,3) % 4 == 0]

我希望这可以帮助你,不断学习,卡住是编程世界美妙旅程的一部分。干杯! :)

答案 6 :(得分:0)

您在此处显示的代码存在两个不同的问题:

首先,将range(1,10)更改为range(1,11),因为Python不包含第二个参数(10),而10 ^ 3平均除以4(1000/4 = 250)。< / p>

最后,本教程要求您在一行中打印所有数字,因此只需使用print cubes_by_four代替您用于在不同行中打印每个数字的for循环。< / p>

答案 7 :(得分:0)

脚本,打印从x = 1开始到x = 10结束的前10个立方体数字(x ** 3)

for x in range(1,11):
 print(x*x*x)

答案 8 :(得分:0)

帮助我的事情是意识到范围排除 1,即:range(0,9) 只会做 0-8,这是正确的做法,除非您想要 0-8是 0-10。

答案 9 :(得分:-1)

for x in range(1,11):
    print(x*x*x)