bwo*_*rmz 2 python math loops exponent
我正在尝试使用Python进行编程,以便可以将2的结果打印到从0到16的每个数字的幂。到目前为止,我有下面的代码,但是它只能将2的结果打印到16的幂,什么也没有在它之前。如何打印其他答案?
n = 2
exponent = 16
while exponent < 16+1:
n = n ** exponent
exponent = exponent + 1
print (n)
Run Code Online (Sandbox Code Playgroud)
2的幂的最佳方法是对进行位移位1,在这种情况下,它比幂运算快。
就是说,我不建议while循环,而是建议for循环,甚至更好:使用列表理解(避免所有变量和不良副作用,由于造成的无限循环while等)生成值列表。单线:
print([1<<exponent for exponent in range(17)])
Run Code Online (Sandbox Code Playgroud)
结果:
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536]
Run Code Online (Sandbox Code Playgroud)