Есть ли разница между` continue `и` pass ' в цикле for в python?
есть ли какая-либо существенная разница между двумя ключевыми словами python continue
и pass
как в примерах
for element in some_list:
if not element:
pass
и
for element in some_list:
if not element:
continue
Я должен знать?
9 ответов:
Да, они делают совершенно разные вещи.
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 находится в конце цикла, разница незначительна, так как поток все равно вернется в верхнюю часть цикла.
в вашем примере не будет никакой разницы, так как оба оператора появляются в конце цикла.
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 docs
в этих примерах нет. Если оператор не самый последний в цикле, то у них есть очень различные эффекты.
между ними есть разница,
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 ничего не делает. На вычисления это не влияет. Но continue возвращается к началу цикла, чтобы выполнить следующее вычисление.
рассмотрим это следующим образом:
Pass: Python работает исключительно на отступ! Нет пустых фигурных скобок, в отличие от других языков.
Итак, если вы ничего не хотите делать, если условие истинно, нет другого варианта, кроме pass.
и дальше: это полезно только в случае петель. В случае, если для диапазона значений вы не хотите выполнять остальные операторы цикла после того, как это условие верно для этого конкретный проход, то вам придется использовать продолжить.