【发布时间】:2016-12-14 15:33:19
【问题描述】:
这是在 Java 中:
for(int i=0; i<10; i++){
while(i%3!=0)
i++;
System.out.print(i + " ");
}
这将输出:
0 3 6 9
我正在尝试在 Python 3 中实现类似的代码块。我做不到。
在外循环中,我不能使用范围,因为它会导致我在某个地方读到的整个列表的迭代。所以,我在下面尝试,但它会危险地失败,无限运行。
i=1
while i<=10:
while i%3 is not 0:
i+=1
print('run')
我可以通过删除内部while 并将代码更改为i+=3 来实现目标。但是我正在尝试制作的程序有重要的条件,所以它必须在那里。 必须有两个循环,并且基于内循环条件匹配,我正在递增迭代变量,所以当我中断并处理一些程序输出时,父循环应该从我在内循环中中断的地方开始迭代。 以上只是我想分享的一个例子。我需要有关如何复制 Python 中的 Java 代码中描述的更改的建议。
【问题讨论】:
-
好吧,一旦 i 达到 3,你就不会增加 i,所以它当然会无限运行。
-
你的外部 for 循环永远不会增加 i。因此,如果 i 从 0 开始,由于缺少增量,它将永远保持为 0。此外,如果您想在一行中打印出 [0, 10] 中的每三个数字,为什么不这样做:
for i in range(0, 11, 3): print(i, end=' ')
标签: java python for-loop conditional-statements