Ejemplos explicados de ciclos While en Python

Ejemplos explicados de ciclos While en Python

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.

Aprende con ejemplos explicados de ciclos while en Python

Aprende con ejemplos explicados de ciclos while 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.

Cuando deseamos iterar un número determinado de veces

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.

Uso de continue y break en ciclos while en Python

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).

Ciclo infinito en Python

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.

Ejemplos explicados de ciclos while en Python

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.

Veamos otro problema:

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í:

 

¿Qué te pareció este artículo?
  • Poco informativo 
  • No era lo que buscaba 
  • Regular 
  • Excelente 
  • Interesante 
(Visto 39.365 veces)
Facebooktwitterlinkedinmail

Tu comentario

opiniones

Leave a Reply

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







67 − = 61