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.
- Mientras Bucle:
- 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.
- 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)
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í.
- Convierta la lista (iterable) en un objeto iterable con la ayuda de la función iter().
- Ejecute un ciclo while infinito y rompa solo si se genera StopIteration.
- En el bloque try, buscamos el siguiente elemento de frutas con la función next().
- 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
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