Omitir iteraciones en un bucle de Python

Hafiz Muhammad Zohaib 21 junio 2023
  1. Use la instrucción try-except con continue para omitir iteraciones en un bucle de Python
  2. Use la instrucción if-else con continuar para omitir iteraciones en un bucle de Python
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.

Artículo relacionado - Python Loop