[英]I'm trying to figure out how increment for loop in powers of 2
我習慣於在 C 中編碼,我目前被困在 python 中的 for 循環中。
在 C 中,for 循環類似於for(int i, i<=1024,i*=2){}
。
我試過for i in range(1,1024,*2)
,但它似乎不接受 *
我目前正在使用
Distance = 1
increment = 2
SearchRange = 1024
while Distance<SearchRange:
Distance *=increment
為了達到類似的結果,我可以在 python 的一行中做些什么來使其工作。
我確定我錯過了一些非常簡單的東西。請幫忙!謝謝!
使用 while 循環來做到這一點:
step = 1
i = 1
while i <= 1024:
print(i)
i *=2
Output:
1
2
4
8
16
32
64
128
256
512
1024
這應該可以正常工作:
>>> for i in range(15) :
... print 1 << i,
...
1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384
>>>
自問題更新以來的新答案:
iterable_range = [ 2**j for j in range(0,1024) ]
for i in iterable_range:
print(i)
使用 for 循環,您可以提供一個iterable
,每次迭代都從中選擇值。 它不像修改索引i
的 C。 因此,要在 Python 中實現相同的效果,您需要創建一個包含所有值的可迭代對象。
這會產生所需的:
1
2
4
8
16
32
64
128
etc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.