2012-01-27 121 views
1

是否有可能在Python中打破循环,没有break命令?
我在问这个问题,以便将其与C++ for循环进行比较,其中实际上每次都检查条件在Python中打破循环

即有可能在C打破一个for循环++象下面这样:

for(int i=0; i<100; i++) 
    i = 1000; // equal to break; 

是有可能做同样的在Python?

for i in range(0,100): 
    i = 10000 // not working 
+0

Python的'for'更像是C++ 11的基于范围的'for',在像原来的C ALL_ _not ++ 'for'。它遍历一组项目。 – 2012-01-27 18:51:55

+1

可能的重复:http://stackoverflow.com/questions/8107285/why-doesnt-this-loop-break – 0605002 2012-01-27 18:54:04

+0

你用什么教程学习Python? – 2012-01-27 18:59:59

回答

6

Python的“为”是真正的“为每个”,并用于与iterables(不循环的条件)。

相反,你可以只使用一个while语句,检查在每次通过循环条件:

i = 0 
while i < 1000: 
    i = 1000 

另一种方法是使用与休息语句配对的if语句来终止循环:

for i in range(1000): 
    if i == 10: 
     break 
1

使用while循环用于此目的:

i = 0 
while i < 100: 
    i = 1000 
0

这将不起作用(正如你所注意到的)。原因在于,原则上,您正在迭代升序数列表的元素(无论这是否真的取决于您是否使用Python 2或3)。您可以随时使用'break'关键字跳出一个循环,尽管使用它可能会导致难以遵循您的代码。

1

不,for在Python中不起作用。 for遍历列表(在本例中)或其他容器或迭代。 for i in range(0, 100)并不意味着“增加i,直到i大于或等于100”,这意味着“将i设置为从这100个项目的列表中连续的项目直到列表被耗尽。”

如果i为50,那么无论您将i设置为什么,列表中的下一项仍然是51。无论如何,

break更好。