Определение из continue
утверждения:
continue
Утверждение продолжается со следующей итерации цикла.
Я не могу найти хороших примеров кода.
Может ли кто-нибудь предложить несколько простых случаев, когда continue
это необходимо?
Определение из continue
утверждения:
continue
Утверждение продолжается со следующей итерации цикла.
Я не могу найти хороших примеров кода.
Может ли кто-нибудь предложить несколько простых случаев, когда continue
это необходимо?
Вот простой пример:
for letter in 'Django':
if letter == 'D':
continue
print("Current Letter: " + letter)
Выход будет:
Current Letter: j
Current Letter: a
Current Letter: n
Current Letter: g
Current Letter: o
Это продолжается до следующей итерации цикла.
continue
делает, но это не слишком полезно, когда вы могли бы сделатьif letter != 'D': print 'Current Letter:', letter
Мне нравится использовать продолжение в циклах, где нужно выполнить много заданий, прежде чем приступить к делу. Так что вместо кода вот так:
Я получаю код, как это:
Делая это таким образом, я избегаю очень глубоко вложенного кода. Кроме того, легко оптимизировать цикл, удалив сначала наиболее часто встречающиеся случаи, так что мне приходится иметь дело только с нечастыми, но важными случаями (например, делитель равен 0), когда нет другого showtopper.
источник
continue
таким образом похоже на использованиеGOTO
. Тем не менее, это правильный способ использованияGOTO
.Обычно ситуация, когда продолжить необходимо / полезно, это когда вы хотите пропустить оставшийся код в цикле и продолжить итерацию.
Я не очень верю, что это необходимо, так как вы всегда можете использовать операторы if для обеспечения одинаковой логики, но это может быть полезно для повышения читабельности кода.
источник
if <condition>: continue
а неif not <condition>: ...
избегание уровня отступа, который в противном случае был бы необходим, если бы он был написан без него.continue
оператор, мы по существу выпрыгиваем из секции условного тестирования и позволяем итерации цикла продолжить к следующей итерации? Мне не очевидно, как это было бы лучше, чем использоватьelse
. Это только улучшенная читаемость и производительность во время выполнения?продолжить это чрезвычайно важное контрольное заявление. Приведенный выше код указывает на типичное применение, в котором можно избежать результата деления на ноль. Я часто использую его, когда мне нужно сохранить выходные данные программ, но я не хочу сохранять выходные данные, если программа потерпела крах. Обратите внимание: чтобы проверить приведенный выше пример, замените последний оператор на print 1 / float (x), иначе вы получите нули, когда есть дробь, поскольку randint возвращает целое число. Я опустил это для ясности.
источник
Некоторые люди прокомментировали читабельность, сказав: «О, это не так сильно помогает читаемости, кого это волнует?»
Предположим, вам нужна проверка перед основным кодом:
Обратите внимание, что вы можете сделать это после как основной код был написан, не изменяя его в любом случае. Если вы измените код, будет подсвечена только добавленная строка с «продолжить», так как в основном коде нет пробелов.
Представьте, что вам нужно внести исправление в производственный код, который просто добавляет строку с помощью continue. Легко видеть, что это единственное изменение, когда вы просматриваете код. Если вы начнете переносить основной код в if / else, diff выделит новый код с отступом, если вы не игнорируете изменения пробелов, что особенно опасно в Python. Я думаю, что если вы не оказались в ситуации, когда вы должны выкатить код в кратчайшие сроки, вы можете не до конца оценить это.
источник
источник
continue
утверждение ? Это может быть устранено с помощью , и код будет так же читабелен.element not in colors
Допустим, мы хотим напечатать все числа, которые не кратны 3 и 5
источник
if x %3 == 0 or x % 5 == 0:
,pass
,else:
,print x
continue
. Мой вывод заключается в том, что в этом нет необходимости , но в некоторых случаях (например, в этом) код более удобен для чтенияcontinue
. Это очень хороший пример.Это не является абсолютно необходимым, поскольку это может быть сделано с помощью IF, но это более читабельно, а также дешевле во время выполнения.
Я использую его, чтобы пропустить итерацию в цикле, если данные не удовлетворяют некоторым требованиям:
Вывод:
Как видите, неправильное значение не было сделано после
continue
утверждения.источник
if
может делать только то, чтоcontinue
делает, если весь код содержится в блоке.continue
пропускает код, который находится даже за пределамиif
блока.Например, если вы хотите делать разные вещи в зависимости от значения переменной:
В приведенном выше примере, если я использую
break
интерпретатор, пропустит цикл. Но приcontinue
этом пропускаются только операторы if-elif и переходите непосредственно к следующему элементу цикла.источник
my_var
оф0
.continue
.elif
должен бытьif
. Код просто не создает впечатление, что вы знаете, что делаете.continue
просто пропускает остальную часть кода в цикле до следующей итерацииисточник