计数器变量作为Python中for循环的步长值

时间:2017-08-07 11:13:19

标签: python python-3.x loops

在Java中,我们可以在其标题本身内更改for循环的计数器变量。见下文:

for(int i=1; i<1024; i*=2){
    System.out.println(i);
}

我知道以下代码是错误的。但有没有一种方法可以在不改变循环内i值的情况下编写。我喜欢让我的for循环变得简单和简短: - )

for i in range(1, 1024, i*=2):        
    print(i)

1 个答案:

答案 0 :(得分:5)

您可以定义自己的生成器来为您执行此操作:

def powers_of_two(start, end):
    while start < end:
        yield start
        start *= 2

for i in powers_of_two(1, 1024):
    print(i)

给出:

1
2
4
8
16
32
64
128
256
512