Bucle Else de Python

Else with loop se usa con while y for loop. El bloque else se ejecuta al final del bucle, lo que significa que cuando la condición del bucle dada es falsa, se ejecuta el bloque else. Así que veamos el ejemplo de while loop y for loop con else a continuación.

Else con bucle while

Considere el siguiente ejemplo.

Python3

i=0
  
while i<5:
  i+=1
  print("i =",i)
  
else:
  print("else block is executed")

Producción:

i = 1
i = 2
i = 3
i = 4
i = 5
else block is executed

Explicación

  • declarar i=0
  • entonces sabemos que while loop está activo hasta que la condición dada es verdadera. y comprobamos que i<5 es cierto hasta que el valor de i es 4.
  • i+=1 incremento de i porque no queremos ejecutar el ciclo while infinitas veces.
  • imprimir el valor de i
  • else bloque se ejecuta cuando el valor de i es 5.

Else con bucle For

Considere el siguiente ejemplo.

Python3

l = [1, 2, 3, 4, 5]
  
for a in l:
    print(a)
  
else:
    print("else block is executed")

Producción:

1
2
3
4
5
else block is executed

Explicación 

  • declarar una lista l=[1,2,3,4,5]
  • for bucle imprimir a.
  • El bloque else se ejecuta cuando el bucle for se lee como el último elemento de la lista.

Else con la sentencia break

El bloque else justo después de for/while se ejecuta solo cuando el ciclo NO termina con una instrucción break. 

En el siguiente ejemplo, la sentencia else solo se ejecutará si ningún elemento del arreglo es par, es decir, si la sentencia no se ha ejecutado en ninguna iteración. Por lo tanto, para la array [1, 9, 8], if se ejecuta en la tercera iteración del ciclo y, por lo tanto, se ignora el else presente después del ciclo for. En el caso de la array [1, 3, 5], el if no se ejecuta para ninguna iteración y, por lo tanto, el else después de que se ejecuta el bucle.

 

Ejemplo 1: Uso del ciclo while

Python3

def contains_even_number(l):
      
    n = len(l)
    i = 0
    while i < n:
        if l[i] % 2 == 0:
            print("list contains an even number")
            break
        i += 1
  
    # This else executes only if break is NEVER
    # reached and loop terminated after all
    # iterations
    else:
        print("list does not contain an even number")
  
# Driver code 
print ("For List 1:")
contains_even_number([1, 9, 8])
print (" \nFor List 2:")
contains_even_number([1, 3, 5])

Producción:

For List 1:
list contains an even number
 
For List 2:
list does not contain an even number

Ejemplo 2: Uso del bucle for

Usaremos el mismo ejemplo anterior, pero esta vez usaremos for loop en lugar de while loop.

Python3

def contains_even_number(l): 
    for ele in l: 
        if ele % 2 == 0: 
            print ("list contains an even number") 
            break
    
    # This else executes only if break is NEVER 
    # reached and loop terminated after all
    # iterations. 
    else:      
        print ("list does not contain an even number") 
    
# Driver code 
print ("For List 1:") 
contains_even_number([1, 9, 8]) 
print (" \nFor List 2:") 
contains_even_number([1, 3, 5])

Producción:

For List 1:
list contains an even number
 
For List 2:
list does not contain an even number

Publicación traducida automáticamente

Artículo escrito por mukulsomukesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *