Есть ли существенная разница между двумя ключевыми словами python continue
и pass
как в примерах
for element in some_list:
if not element:
pass
и
for element in some_list:
if not element:
continue
Я должен быть в курсе?
while True:; pass # Busy-wait for keyboard interrupt (Ctrl+C)
в документации по питону меня смутило то, что я не нашел ясной погоды, он ведет себя как продолжение в этом случае, или что-то еще было задумано. Первое предложение «Pass Pass ничего не делает». характеризует все ответы на мой вопрос, но почему-то это не бросилось в глаза.Ответы:
Да, они делают совершенно разные вещи.
pass
просто ничего не делает, покаcontinue
идет следующая итерация цикла. В вашем примере разница станет очевидной, если вы добавите еще один оператор послеif
: После выполненияpass
этот дополнительный оператор будет выполнен. Послеcontinue
этого не будет.источник
pass
ключевое слово ничего не делает, оно полезно только тогда, когда вам нужен синтаксис с отступом, но вы не хотите ничего делать. Типичный пример: если вы хотите игнорировать какое-то исключение, вы используетеexcept SomeException: pass
. Есть также много других вариантов использования. Вам не нужно строго ключевое слово для этого, так как вы можете использовать любой другой оператор, который ничего не делает (например0
, это совершенно правильный оператор, который не имеет эффекта), но наличие ключевого слова для этого позволяет вам быть более явно о нежелании что-либо делать.pass
?Да, есть разница.
continue
заставляет цикл запускаться на следующей итерации, в то время какpass
означает «здесь нет кода для выполнения» и будет продолжаться до конца или тела цикла.Запустите эти и увидите разницу:
источник
continue
будет прыгать обратно на вершину петли.pass
продолжит обработку.если проход в конце цикла, разница незначительна, поскольку поток все равно вернется к вершине цикла.
источник
В вашем примере разницы не будет, так как оба оператора появляются в конце цикла.
pass
это просто заполнитель в том смысле, что он ничего не делает (он передает выполнение следующему оператору).continue
с другой стороны, имеет определенную цель: он сообщает циклу продолжить, как будто он только что перезапустился.сильно отличается от
источник
Между ними есть разница,
continue
пропускает текущую итерацию цикла и выполняет следующую итерацию.pass
ничего не делает. Это пустой заполнитель заявления.Я бы лучше дал вам пример, который разъяснит это лучше.
источник
Да, есть разница.
Continue
фактически пропускает оставшуюся часть текущей итерации цикла (возвращаясь к началу).Pass
это пустое утверждение, которое ничего не делает.Смотрите документы по питону
источник
В тех примерах нет. Если утверждение не является последним в цикле, то они имеют очень разные эффекты.
источник
Разница между проходом и продолжением цикла for:
Так зачем переходить на python?
Если вы хотите создать пустой класс, метод или блок.
Примеры:
без 'pass' в приведенных выше примерах выдает IndentationError.
источник
Выход
Опять же, давайте запустим тот же код с небольшими изменениями.
Выход -
Пасс ничего не делает. На вычисления это не влияет. Но продолжить возвращает к началу цикла, чтобы продолжить со следующим вычислением.
источник
Рассмотрим это так:
Pass: Python работает исключительно на отступах! Там нет пустых фигурных скобок, в отличие от других языков.
Итак, если вы хотите ничего не делать в случае, если условие истинно, нет другого выбора, кроме pass.
Продолжить: это полезно только в случае циклов. В случае, если для диапазона значений вы не хотите выполнять оставшиеся операторы цикла после того, как это условие истинно для данного конкретного прохода, вам придется использовать продолжить.
источник
pass
if, еслиTrue
и выполнить операцию, если она естьFalse
. Это позволяет эффективно сканировать многоцелевые списки.pass
может использоваться в сценариях, когда вам понадобятся некоторые пустые функции, классы или циклы для будущих реализаций, и нет необходимости выполнять какой-либо код.continue
используется в сценариях, когда нет, когда какое-либо условие выполнено в цикле, и вам нужно пропустить текущую итерацию и перейти к следующей.источник