Есть ли существенная разница между двумя ключевыми словами python continue
и pass
, как в примерах
for element in some_list:
if not element:
pass
и
for element in some_list:
if not element:
continue
я должен знать?
Есть ли существенная разница между двумя ключевыми словами python continue
и pass
, как в примерах
for element in some_list:
if not element:
pass
и
for element in some_list:
if not element:
continue
я должен знать?
Да, они делают совершенно разные вещи. pass
просто ничего не делает, а continue
продолжается со следующей итерацией цикла. В вашем примере разница станет очевидной, если вы добавили еще один оператор после if
: после выполнения pass
этот дальнейший оператор будет выполнен. После continue
это не будет.
>>> a = [0, 1, 2]
>>> for element in a:
... if not element:
... pass
... print element
...
0
1
2
>>> for element in a:
... if not element:
... continue
... print element
...
1
2
Да, есть разница. continue
заставляет цикл запускаться на следующей итерации, а pass
означает, что "здесь нет кода для выполнения" и будет продолжаться через остаток или тело цикла.
Запустите их и посмотрите разницу:
for element in some_list:
if not element:
pass
print 1 # will print after pass
for element in some_list:
if not element:
continue
print 1 # will not print after continue
continue
вернется в начало цикла. pass
продолжит обработку.
если проход находится в конце цикла, разница незначительна, так как поток все равно вернется к вершине цикла.
В вашем примере разница не будет, так как оба оператора появляются в конце цикла. pass
является просто заполнителем, поскольку он ничего не делает (он передает выполнение следующему оператору). continue
, с другой стороны, имеет определенную цель: он сообщает, что цикл продолжается, как если бы он только что перезапустился.
for element in some_list:
if not element:
pass
print element
сильно отличается от
for element in some_list:
if not element:
continue
print element
В этих примерах нет. Если утверждение не является самым последним в цикле, то они имеют очень разные эффекты.
Да, есть разница. Continue
фактически пропускает оставшуюся часть текущей итерации цикла (возвращается к началу). Pass
- пустой оператор, который ничего не делает.
Смотрите документы python
Существует разница между ними, continue
пропускает текущую итерацию цикла и выполняет следующую итерацию. pass
ничего не делает. Его пустой оператор. Я бы скорее привел вам пример, который разъяснит это лучше.
>>> for element in some_list:
... if element == 1:
... print "Pass executed"
... pass
... print element
...
0
Pass executed
1
2
>>> for element in some_list:
... if element == 1:
... print "Continue executed"
... continue
... print element
...
0
Continue executed
2
x = [1,2,3,4]
for i in x:
if i==2:
pass #Pass actually does nothing. It continues to execute statements below it.
print "This statement is from pass."
for i in x:
if i==2:
continue #Continue gets back to top of the loop.And statements below continue are executed.
print "This statement is from continue."
Выходной сигнал
>>> This statement is from pass.
Опять же, пусть запускает тот же код с незначительными изменениями.
x = [1,2,3,4]
for i in x:
if i==2:
pass #Pass actually does nothing. It continues to execute statements below it.
print "This statement is from pass."
for i in x:
if i==2:
continue #Continue gets back to top of the loop.And statements below continue are executed.
print "This statement is from continue."
Выход -
>>> This statement is from pass.
This statement is from pass.
This statement is from pass.
This statement is from pass.
This statement is from continue.
This statement is from continue.
This statement is from continue.
Пасс ничего не делает. Вычисление не изменяется. Но продолжайте возвращаться к вершине цикла, чтобы выполнить следующий расчет.
Рассмотрим это так:
Pass: Python работает исключительно с отступами! Там нет пустых фигурных скобок, в отличие от других языков.
Итак, если вы хотите ничего не делать в случае, если условие истинно, нет другого выбора, кроме pass.
Продолжить: Это полезно только в случае циклов. В случае, если для диапазона значений вы не хотите выполнять оставшиеся операторы цикла после того, как это условие истинно для данного конкретного прохода, вам придется использовать continue.