我试图制作一个for循环,如:
for (i=2; i<200; i*=2){
}
python
中的。我怎样才能做到这一点?与range
?
答案 0 :(得分:5)
只需使用while
:
i = 2
while i < 200:
print i
i *= 2
它产生以下输出:
2
4
8
16
32
64
128
答案 1 :(得分:3)
您可以使用左移位(而不是* 2)和while循环:
i = 2
while i < 200:
... #something
i <<= 1
* 2变体仍然有效,但
i = 2
while i < 200:
... #something
i *= 2
使用for循环的一个更奇特的变化(可能不如使用&lt;&lt; 1的循环那样有效)将是这样的:
for i in [2**(j + 1) for j in range(int(math.log(200,2))]:
我仍然会使用while循环...
原始评论:
话虽如此,如果我从0开始,如果在* 2或&lt;&lt;之前未更改值,则循环将以无限循环结束1(注意@TomKarzes评论)