Analiza los siguientes ejemplos explicados de ciclos While en Python. Se explica el uso de continue y break, y cómo utilizar ciclos While para trabajar con listas en Python.
Éste artículo cuenta con explicación en video. Consúltalo aquí: https://youtu.be/akiAof1cnk8
Un ciclos While permite repetir una serie de instrucciones una cantidad determinada o indeterminada de veces. Una ciclo while realiza un conjunto de instrucciones mientras una condición sea cierta (sea diferente de 0). Cuando la instrucción es 0 (o falso) se suspende la ejecución del ciclo.
Ejemplo: Imprimir los números del 1 al 10
i=0 while i<10: i+=1 print (i)
Explicación: La variable i contiene un dato numérico que inicia en 0. El ciclo while contiene una condición (i < 10) que es evaluada (¿true o false?), mientras el resultado sea True ejecutará todas las lineas indentadas debajo de while. Éstas líneas incrementan la variable i en 1 (i+=1), lo que eventualmente la llevará a valer 10 lo que hará que abandone el ciclo.
Continue y break son dos instrucciones que cambian el comportamiento del ciclo.
Continue detiene la ejecución de la iteración (vuelta) actual y pasa a la siguiente.
Break detiene la ejecución de la iteración actual y de todas las demás (rompe el ciclo). Por ejemplo:
i=0 while i<10: i+=1 if i==7: continue print(i)
En el ejemplo anterior vemos dos ciclos, parecidos al anterior ya explicado. Hay un momento en el que se compara si i==7, y luego ocurre un continue. Es decir, cuando el valor sea 7, termina la iteración actual (ya no ejecuta print(i)) y pasa a la siguiente iteración (i+=1).
i =0 while True: i+=1 print(i) if i==13: break
En el ejemplo anterior se crea un ciclo infinito (while True). Con esto indicamos que el ciclo siempre se ejecuta pues while nunca obtiene un Falso. (Tudor, 2019) ¿Cómo se sale del ciclo? Cuando i==13 se ejecuta la instrucción break. Eso termina la ejecución de todo el ciclo.
Considere el siguiente problema:
Escriba un programa que acepte una secuencia de lineas e imprima todas las lineas convertidas en mayusculas. Deje una línea en blanco para indicar que ha finalizado la entrada de lineas.
Por ejemplo, si la entrada es:
De tal palo tal astilla
En casa de herrero, azadon de palo
A todo marrano le llega su noche buena
Entonces la salida sería:
DE TAL PALO TAL ASTILLA
EN CASA DE HERRERO, AZADON DE PALO
A TODO MARRANO LE LLEGA SU NOCHE BUENA
Análisis: Vamos a utilizar un ciclo infinito, pues no sabemos cuántas líneas de texto va a introducir el usuario. Además, debemos saber cuándo introdujo una línea en blanco para de esa forma salir del ciclo usando break. Todas las líneas debemos guardarlas en una lista y convertirlas a mayúsculas.
Solución:
lineas = [] print ("Escriba algunas lineas. Deje en blanco para finalizar: ") while True: s = input() if s: lineas.append(s.upper()) else: break; for refran in lineas: print (refran)
Explicación: Creamos una lista vacía (lineas=[ ]), y damos una instrucción al usuario (print(“escriba algunas líneas”)). Usamos un ciclo infinito (while True) y recibimos datos del usuario guardándolos en s (s = input()). Comparamos si s tiene algo (if s), en tal caso, añadimos (.append) el dato escrito por el usuario convertido a mayúscula (s.upper()) a la lista (lineas). Si s no tiene nada (else), usamos break para salir del ciclo. Fuera del ciclo while hacemos un for para recorrer toda la lista (lineas) imprimiendo cada dato guardado en ella.
Escriba un programa que administre una cuenta bancaria, usando una bitácora de operaciones.
La bitácora de operaciones tiene la siguiente forma:
D 100
R 50
D 100 significa que depositó 100 pesos
R 50 significa que retiró 50 pesos
Ejemplo de una entrada:
D 200
D 200
R 100
D 50
Introducir una linea vacia indica que ha finalizado la bitacora.
La salida de éste programa sería:
350
Análisis: Vamos a utilizar un ciclo infinito pues no sabemos cuántas líneas tendrá la bitácora. Debemos detectar cuando introduzca una línea en blanco. Cada linea hay que separar la primera letra del valor numérico. Si la letra es “D”, sumar a saldo el valor numérico. Si la letra es “R”, restar a saldo el valor numérico.
Solución:
saldo = 0 print ("Escriba la bitacora de operaciones: ") while True: s = input() if not s: break datos = s.split(" ") operacion = datos[0] monto = int(datos[1]) if operacion=="D": saldo+=monto elif operacion=="R": saldo-=monto else: pass print (saldo)
Explicación: La variable que deseamos calcular es saldo, por lo que la iniciamos en cero (saldo = 0). Enviamos un mensaje al usuario (print (“Escriba la bitácora”)) e iniciamos un ciclo infinito (while True). Dentro del ciclo, leemos datos del usuario (s = input) y lo guardamos en s. Verificamos si s está vacía (if not s) en tal caso haremos break, lo que nos sacará inmediatamente del ciclo. Por lo contrario, continúa la ejecución, haciendo separando la letra de los números, considerando que hay un espacio en blanco entre ellos (datos = s.split(” “). Ahora tenemos en datos dos valores, el primero lo guardamos en la variable operacion (operacion = datos[0]) y el segundo en monto ya convertido a entero (monto = int(datos [1]). Comparamos si el valor de operacion es D (if operacion == “D”), en tal caso sumamos el valor de monto a saldo. Hacemos lo mismo pero restando si la operación es “R”. Fuera del ciclo imprimimos saldo.
Espero que éstos ejemplos explicados de ciclos while te permitan comprender ésta instrucción en Python.
Puedes ver ésta misma explicación en video, con la ejecución de los programas. Te lo dejo aquí: