Omitir iteraciones en un bucle de Python
-
Use la instrucción
try-except
concontinue
para omitir iteraciones en un bucle de Python -
Use la instrucción
if-else
concontinuar
para omitir iteraciones en un bucle de Python
Este artículo explica diferentes formas de omitir las iteraciones específicas de un bucle en Python.
A veces, tenemos que lidiar con los requisitos de realizar algunas tareas repetidamente y omitir algunas de ellas en el medio. Por ejemplo, cuando está ejecutando un ciclo y desea omitir la parte de esa iteración que puede generar una excepción.
Use la instrucción try-except
con continue
para omitir iteraciones en un bucle de Python
En Python, las excepciones se pueden manejar fácilmente a través de una declaración try-except
. Si cree que puede encontrar algunas excepciones durante las iteraciones del ciclo, debido a las cuales la ejecución del ciclo puede detenerse, entonces puede usar esta declaración.
List_A = [25, 30, 100, 600]
List_B = [5, 10, 0, 30]
Result = []
for i, dividend in enumerate(List_A):
try:
# perform the task
Result.append(dividend / List_B[i])
except:
# handle the exceptions
continue
print(Result)
En el código anterior, tenemos dos listas y queremos dividir List_A
por List_B
elemento por elemento.
En Python, cuando divides un número por cero, ocurre el ZeroDivisionError
. Dado que List_B
contiene cero como divisor, la división por él generará este error durante la ejecución del bucle.
Entonces, para evitar este error, usamos el bloque excepto
. La excepción se generará cuando se produzca el error y se ejecutará el bloque excepto
.
La declaración continuar
ignora cualquier declaración posterior en la iteración del bucle actual y vuelve al principio del bucle. Así es como puede omitir las iteraciones del bucle.
El código anterior genera el siguiente resultado:
[5.0, 3.0, 20.0]
Use la instrucción if-else
con continuar
para omitir iteraciones en un bucle de Python
Podemos hacer la misma tarea con una sentencia if-else
y continuar
.
List_A = [25, 30, 100, 600]
List_B = [5, 10, 0, 30]
Result = []
for i, dividend in enumerate(List_A):
if List_B[i] != 0:
Result.append(dividend / List_B[i])
else:
continue
print(Result)
Este es un código sencillo. La diferencia entre esta solución y la solución try-except
es que la implementación anterior ya conoce la condición por la cual se puede detener la ejecución del ciclo.
Por lo tanto, esta condición se puede codificar explícitamente para omitir esa iteración.
Producción :
[5.0, 3.0, 20.0]
Como resultado de las implementaciones anteriores, puede omitir la iteración de bucle en la que puede ocurrir un error/excepción sin que se detenga el bucle.