修改for循环中的增量值

时间:2015-11-21 08:01:05

标签: python python-2.7

我正在使用Python 2.7并且想知道是否有一种干净的方法来编写这个Java循环的Python等价物(你可以修改循环中的增量值):

for (int i = 1; i <= 64; i *= 2) {
    # i = 1, 2, 4, 8, 16, 32, 64
}

似乎在Python中你可以使用range(),但是你只能获得每个第n个元素(例如for i in range(1, 65, 2)将获得每个奇数元素。)

1 个答案:

答案 0 :(得分:2)

Java for循环与Python不同。您可以使用while循环获得相同的效果。

i = 1
while (i<=64):
    print(i)
    i*=2

否则,您可以使用自定义生成器

实现自己的范围功能
>>> def my_own_range(n):
...     i = 1
...     while(i<=n):
...         yield(i)
...         i*=2
... 
>>> for i in my_own_range(64):
...     print(i)
... 
1
2
4
8
16
32
64