我在循环中看过python教程,但没有一个显示循环方式,如下所示。
是否可以转换此python?或者还有其他方法吗?
for(int i=1;i<=64;i=i*2)
cout<<i;
//i know these following in python
for i in range(1,64,2) // moves i in steps of 2
for i in range(64,1,-1) // moves i in down steps of 1
答案 0 :(得分:1)
对于每次加倍或其他常规序列的特定情况,您可以使用理解来达到同样的效果:
for i in (2**i for i in range(0, 7)): print i
请注意,这与以下内容完全相同:
for i in range(0, 7): print 2**i
但是,在更一般的情况下,您可以使用while
循环,如另一个答案中所示,或创建您自己的generator function以便在循环中使用。
答案 1 :(得分:0)
只有当你想每次增加2时,你才能使用你提到的第一个选项,即:
for i in range (1,65,2):
注意如果你想让我也等于64,你必须在65岁时结束你的射程。 另一个选择是你希望每次加倍:
i=1
while i<=64:
#some code comes here
i*=2
再次如果你想让64成为循环的一部分你需要看到循环结束的位置(即i的值是什么)