簡體   English   中英

我試圖弄清楚如何以 2 的冪為循環遞增

[英]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

在 Python 中,它會寫成:

for i in range(1024):
    i*=2

查看https://wiki.python.org/moin/ForLoop了解更多其他示例。

這應該可以正常工作:

>>> 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM