2017-08-07 61 views
1

在Java中,我们可以在其标头本身内更改for循环的计数器变量。见下:计数器变量作为Python中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) 
+2

@MarounMaroun这个步骤是乘法不可加的 –

+1

@MosesKoledoye我的不好。谢谢。 – Maroun

+2

在这种情况下,你可以在使用'对我(2 ** K表K的范围(10))' –

回答

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 
+0

这使代码更加复杂。但有希望的是,它符合我的预期。 :-) 谢谢。 –