bucles en python

El lenguaje de programación Python proporciona los siguientes tipos de bucles para manejar los requisitos de bucle. Python proporciona tres formas de ejecutar los bucles. Si bien todas las formas brindan una funcionalidad básica similar, difieren en su sintaxis y tiempo de verificación de condición.

  1. Mientras Bucle: 
  2. En python, el ciclo while se usa para ejecutar un bloque de declaraciones repetidamente hasta que se cumpla una condición determinada. Y cuando la condición se vuelve falsa, se ejecuta la línea inmediatamente después del bucle en el programa.

Sintaxis :

while expression:
    statement(s)

        3. Todas las declaraciones sangradas por el mismo número de espacios de caracteres después de una construcción de programación se consideran parte de un solo bloque de código. Python usa sangría como su método de agrupar declaraciones. 
            Ejemplo: 

Python

# Python program to illustrate
# while loop
count = 0
while (count < 3):   
    count = count + 1
    print("Hello Geek")

Producción: 

Hello Geek
Hello Geek
Hello Geek
  • Uso de la declaración else con bucles while: como se discutió anteriormente, el bucle while ejecuta el bloque hasta que se cumple una condición. Cuando la condición se vuelve falsa, se ejecuta la declaración inmediatamente después del bucle. 
    La cláusula else solo se ejecuta cuando su condición while se vuelve falsa. Si sale del bucle o si se genera una excepción, no se ejecutará. 
    Si es así:

Python

if condition:
    # execute these statements
else:
    # execute these statements
  • y mientras bucles como este son similares

Python

while condition:
     # execute these statements
else:
     # execute these statements

Python

#Python program to illustrate
# combining else with while
count = 0
while (count < 3):   
    count = count + 1
    print("Hello Geek")
else:
    print("In Else Block")

Producción: 

Hello Geek
Hello Geek
Hello Geek
In Else Block
  • Instrucción única bloque while: Al igual que el bloque if, si el bloque while consta de una sola instrucción, entonces podemos declarar el ciclo completo en una sola línea como se muestra a continuación:

Python

# Python program to illustrate
# Single statement while block
count = 0
while (count == 0): print("Hello Geek")
  • Nota : se sugiere no usar este tipo de bucles, ya que es un bucle infinito sin fin donde la condición siempre es verdadera y debe terminar el compilador a la fuerza.
  1. for in Loop: los bucles for se utilizan para el recorrido secuencial. Por ejemplo: recorrer una lista, una string o una array, etc. En Python, no hay un estilo C para bucle, es decir, for (i=0; i<n; i++). Hay un bucle «for in» que es similar al bucle for each en otros idiomas. Aprendamos a usar for in loop para recorridos secuenciales.

Sintaxis:

for iterator_var in sequence:
    statements(s)

Se puede usar para iterar sobre un rango e iteradores.

Python3

# Python program to illustrate
# Iterating over range 0 to n-1
 
n = 4
for i in range(0, n):
    print(i)

Producción :

0
1
2
3

Python

# Python program to illustrate
# Iterating over a list
print("List Iteration")
l = ["geeks", "for", "geeks"]
for i in l:
    print(i)
      
# Iterating over a tuple (immutable)
print("\nTuple Iteration")
t = ("geeks", "for", "geeks")
for i in t:
    print(i)
      
# Iterating over a String
print("\nString Iteration")   
s = "Geeks"
for i in s :
    print(i)
      
# Iterating over dictionary
print("\nDictionary Iteration")  
d = dict()
d['xyz'] = 123
d['abc'] = 345
for i in d :
    print("%s  %d" %(i, d[i]))
     
#Iterating over a set
print("\nSet Iteration")
set1 = {1,2,3,4,5,6}
for i in set1:
    print(i),

Producción: 

List Iteration
geeks
for
geeks

Tuple Iteration
geeks
for
geeks

String Iteration
G
e
e
k
s

Dictionary Iteration
xyz  123
abc  345

Iterando por el índice de secuencias : También podemos usar el índice de elementos en la secuencia para iterar. La idea clave es calcular primero la longitud de la lista e iterar sobre la secuencia dentro del rango de esta longitud. 
Vea el siguiente ejemplo: 

Python

# Python program to illustrate
# Iterating by index
 
list = ["geeks", "for", "geeks"]
for index in range(len(list)):
    print list[index]

Producción: 

geeks
for
geeks

Uso de sentencias else con bucles for: También podemos combinar sentencias else con bucles for como en bucle while. Pero como no hay ninguna condición en el bucle for basada en la cual la ejecución terminará, el bloque else se ejecutará inmediatamente después de que el bloque for finalice la ejecución. 
El siguiente ejemplo explica cómo hacer esto: 

Python

# Python program to illustrate
# combining else with for
 
list = ["geeks", "for", "geeks"]
for index in range(len(list)):
    print list[index]
else:
    print "Inside Else Block"

Producción: 

geeks
for
geeks
Inside Else Block

Bucles anidados: el lenguaje de programación Python permite usar un bucle dentro de otro bucle. La siguiente sección muestra algunos ejemplos para ilustrar el concepto. 
Sintaxis: 

Python

for iterator_var in sequence:
    for iterator_var in sequence:
        statements(s)
        statements(s)

La sintaxis de una instrucción de ciclo while anidado en el lenguaje de programación Python es la siguiente: 

Python

while expression:
    while expression:
        statement(s)
        statement(s)

Una nota final sobre el anidamiento de bucles es que podemos poner cualquier tipo de bucle dentro de cualquier otro tipo de bucle. Por ejemplo, un bucle for puede estar dentro de un bucle while o viceversa.

Python

# Python program to illustrate
# nested for loops in Python
from __future__ import print_function
for i in range(1, 5):
    for j in range(i):
         print(i, end=' ')
    print()

Producción: 

1
2 2
3 3 3
4 4 4 4

Sentencias de control de bucle: Las sentencias de control de bucle cambian la ejecución de su secuencia normal. Cuando la ejecución sale de un ámbito, todos los objetos automáticos que se crearon en ese ámbito se destruyen. Python admite las siguientes declaraciones de control. 

  • Sentencia Continue: Devuelve el control al inicio del ciclo.

Python

# Prints all letters except 'e' and 's'
for letter in 'geeksforgeeks':
    if letter == 'e' or letter == 's':
         continue
    print 'Current Letter :', letter
    var = 10

Producción: 

Current Letter : g
Current Letter : k
Current Letter : f
Current Letter : o
Current Letter : r
Current Letter : g
Current Letter : k
  • Break Statement: Saca el control del bucle

Python

for letter in 'geeksforgeeks':
 
    # break the loop as soon it sees 'e'
    # or 's'
    if letter == 'e' or letter == 's':
         break
 
print 'Current Letter :', letter

Producción: 

Current Letter : e
  • Declaración de paso: usamos la declaración de paso para escribir bucles vacíos. Pass también se usa para declaraciones de control, funciones y clases vacías.

Python

# An empty loop
for letter in 'geeksforgeeks':
    pass
print 'Last Letter :', letter

Producción: 

Last Letter : s

¿Cómo funciona internamente el bucle for en Python?

Antes de continuar con esta sección, debe tener una comprensión previa de los iteradores de Python.

En primer lugar, veamos cómo se ve un bucle for simple.

Python3

# A simple for loop example
 
fruits = ["apple", "orange", "kiwi"]
 
for fruit in fruits:
 
 print(fruit)
Producción

apple
orange
kiwi

Aquí podemos ver que los bucles for iteran sobre el objeto iterable fruit, que es una lista. Listas, conjuntos, diccionarios son pocos objetos iterables, mientras que un objeto entero no es un objeto iterable.

Los bucles for pueden iterar sobre cualquier objeto iterable (ejemplo: lista, conjunto, diccionario, tupla o string).

Ahora, con la ayuda del ejemplo anterior, profundicemos y veamos qué sucede internamente aquí.

  1. Convierta la lista (iterable) en un objeto iterable con la ayuda de la función iter().
  2. Ejecute un ciclo while infinito y rompa solo si se genera StopIteration.
  3. En el bloque try, buscamos el siguiente elemento de frutas con la función next().
  4. Después de buscar el elemento, hicimos la operación a realizar con el elemento. (es decir, imprimir (fruta))

Python3

fruits = ["apple", "orange", "kiwi"]
 
# Creating an iterator object
# from that iterable i.e fruits
iter_obj = iter(fruits)
 
# Infinite while loop
while True:
  try:
    # getting the next item
    fruit = next(iter_obj)
    print(fruit)
  except StopIteration:
 
    # if StopIteration is raised,
    # break from loop
    break
Producción

apple
orange
kiwi

Podemos ver que debajo del capó estamos llamando a los métodos iter() y next(). 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *