我正在使用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)
将获得每个奇数元素。)
答案 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