一切權力,我想在Python編程,這樣我可以打印2的結果,每一個號碼的功率從0到16,我有以下這麼遠代碼,但它只能將2的結果打印到電源16上,而沒有任何打印結果。我如何打印其他答案?的Python:2從0力16
n = 2
exponent = 16
while exponent < 16+1:
n = n ** exponent
exponent = exponent + 1
print (n)
一切權力,我想在Python編程,這樣我可以打印2的結果,每一個號碼的功率從0到16,我有以下這麼遠代碼,但它只能將2的結果打印到電源16上,而沒有任何打印結果。我如何打印其他答案?的Python:2從0力16
n = 2
exponent = 16
while exponent < 16+1:
n = n ** exponent
exponent = exponent + 1
print (n)
您exponent
開始在16
; while循環只會執行一次迭代。和你在循環的每一步都重新分配n
... 這會工作:
for exp in range(17):
print(2**exp)
您應該檢查的exponent
初始化,因爲你希望它去從0到16,但你設定它從16開始。
exponent = 0
應該做的伎倆;)
此外,要小心,因爲你重新分配在每次循環n
。嘗試只打印結果,而不是將其存儲在n
(或使用其他變量)。
希望這會有所幫助!
與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]
在代碼中進行以下更改
exponent
應最初設定爲0
。n
下面是正確的代碼版本:
n = 2
exponent = 0
while exponent < 16+1:
res = n ** exponent
exponent = exponent + 1
print (res)
你開始用'指數= 16'也許你應該初始化'exponent'到'0' – user2314737