我试图用Python编程,这样我就可以将2的结果打印到0到16之间的每个数字的幂。我到目前为止有下面的代码,但它只能打印2的结果电源16,没有任何东西。如何用它打印其他答案?
n = 2
exponent = 16
while exponent < 16+1:
n = n ** exponent
exponent = exponent + 1
print (n)
答案 0 :(得分:4)
2的幂的最佳方法是在1
上使用位移,这在这种情况下比取幂更快。
那就是说,我不建议使用while
循环,而是推荐for
循环,甚至更好:使用列表推导生成您的值列表(避免所有变量和不需要的方面)效果,因while
等而无限循环......)和单行:
print([1<<exponent for exponent in range(17)])
结果:
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536]
答案 1 :(得分:2)
在代码中进行以下更改
exponent
最初应设为0
。n
以下是正确的代码版本:
n = 2
exponent = 0
while exponent < 16+1:
res = n ** exponent
exponent = exponent + 1
print (res)
答案 2 :(得分:1)
exponent
从16
开始; while循环只进行一次迭代。并且你在循环的每一步都重新分配n
......
这会奏效:
for exp in range(17):
print(2**exp)
答案 3 :(得分:0)
您应该检查exponent
的初始化,因为您希望它从0到16,但是从头开始将其设置为16。
exponent = 0
应该做的伎俩;)
另外,请注意,因为您每次都在循环中重新分配n
。尝试仅打印结果,而不是将其存储在n
中(或使用其他变量)。
希望这有帮助!