Python如何使用变异i * 2进行循环

时间:2016-04-10 04:12:22

标签: python for-loop

我试图制作一个for循环,如:

for (i=2; i<200; i*=2){
}
python中的

。我怎样才能做到这一点?与range

2 个答案:

答案 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评论)