перерыв для цикла в Python - PullRequest
       8

перерыв для цикла в Python

1 голос
/ 27 января 2012

возможно ли разорвать цикл для в Python без команды break ?
Я задаю этот вопрос, чтобы сравнить его с циклом C ++ for, вкоторый на самом деле проверяет условие каждый раз.

т.е. можно разорвать цикл for в C ++, как показано ниже:

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

возможно ли сделать то же самое вPython?

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

Ответы [ 5 ]

6 голосов
/ 27 января 2012

Python "for" на самом деле является "для каждого" и используется с iterables (не в условиях цикла).

Вместо этого вы можете просто использовать оператор while, который проверяетусловие цикла на каждом проходе:

i = 0
while i < 1000:
     i = 1000

Другой альтернативой является использование оператора if в паре с оператором break для завершения цикла:

for i in range(1000):
     if i == 10:
         break
1 голос
/ 27 января 2012

Нет, for не работает так в Python. for перебирает список (в данном случае) или другой контейнер или повторяется. for i in range(0, 100) не означает «увеличение i до тех пор, пока i не станет больше или равно 100», это означает «установить i для последовательных элементов из списка из этих 100 элементов, пока список не будет исчерпан».

Если i равно 50, то следующий элемент списка будет по-прежнему 51, независимо от того, что вы можете установить для i.

break лучше в любом случае.

1 голос
/ 27 января 2012

Используйте для этой цели петлю while:

i = 0
while i < 100:
    i = 1000
0 голосов
/ 27 января 2012

Возможно, вам придется согласиться на оператор перерыва:

http://docs.python.org/tutorial/controlflow.html

for i in range(0,100):
    print i
    if i == 10:
        break
0 голосов
/ 27 января 2012

Это не сработает (как вы заметили).Причина в том, что в принципе вы перебираете элементы списка по возрастанию чисел (действительно ли это зависит от того, используете ли вы Python 2 или 3).Вы можете использовать ключевое слово 'break', чтобы выйти из цикла в любое время, хотя его избыточное использование может затруднить выполнение вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...