Presentación - El Ciclo While
Presentación - El Ciclo While
Presentación - El Ciclo While
condicionales e iterativas
El Ciclo While
● Unidad 1:
Introducción a Python
Utilizar sentencias iterativas
para la elaboración ● Unidad 2: Te encuentras aquí
Sentencias condicionales e
de un algoritmo que iterativas
resuelve un problema
acorde al lenguaje Python. ● Unidad 3:
Estructuras de datos y funciones
¿Qué aprenderás en esta sesión?
● Utiliza sentencias FOR y WHILE para la elaboración de un
algoritmo iterativo que resuelve un problema acorde al
lenguaje Python.
● Utiliza ciclos anidados y condiciones de salida para resolver
un problema acorde al lenguaje Python.
¿Qué entendemos
por sentencias?
/* Ciclos */
Introducción a ciclos
Los ciclos son sentencias que nos permiten repetir la ejecución de una o más instrucciones.
Instrucción 1
Instrucción 2
Instrucción 3
Ciclo While
Permite ejecutar una o más operaciones mientras se cumpla una condición, la cual es
idéntica a las utilizadas en nuestras sentencias if y la sintaxis es la siguiente:
while condición:
# código a implementar
Ciclo While
Ejemplo
Como vimos anteriormente, un algoritmo es una secuencia de pasos FINITA para resolver
un problema.
En algún momento, algunas de las instrucciones dentro del bloque deben lograr que la
condición no se cumpla, es decir, debe existir una condición de salida o término del ciclo.
Ejercicio guiado
Password
Password
Todo buen programador sabe que existen algunos elementos que son sensibles, ya
que no todo puede ser público, por lo que algunas veces va a ser necesario la
inclusión de contraseñas o passwords para proteger la información.
Paso 1
Creemos el archivo password.py
Paso 2
Solicitamos la clave. Para ello, utilizaremos la librería getpass.
import getpass
password = getpass.getpass("Ingrese la clave secreta: ")
Password
Solución
Paso 3
Si la clave es correcta queremos que nuestro programa inicie, de lo contrario,
queremos que vuelva a solicitar la clave. Dado que queremos que vuelva a realizar
una acción de solicitar la clave hasta que se ingrese la clave correcta, es necesario
utilizar el ciclo while:
Paso 4
Finalmente, podemos incluir el código final de nuestro programa. En este caso, solo
agregaremos un código genérico que da inicio a nuestro programa.
● La línea 2 solicita la clave por primera vez. Si la clave es correcta, el ciclo while nunca
comenzará, y el programa iniciará su funcionamiento de la manera esperada.
● Adicionalmente, si la línea 2 no existe, aparecerá un error, ya que la línea 8 realiza una
prueba lógica con la variable password, que no estaría definida.
● Finalmente, queremos solicitar la clave de dos maneras distintas, una de manera inicial
(línea 1) y una en caso de equivocarse línea 9.
Iterar es dar una vuelta al ciclo, y por diseño, el ciclo while es un ciclo infinito, donde la
mayoría de las veces no se sabe cuántas iteraciones tendrá.
i = 0
while i < 10:
print("Esto se mostrará 10 veces") # está es la expresión a repetir
i = i + 1 # IMPORTANTE
Contando con While
● En este ciclo el iterador (i) en la primera vuelta valdrá 1, en la segunda iteración valdrá
2, en la tercera valdrá 3 y así sucesivamente hasta llegar a la condición declarada que
sea menor que 10.
Si no se aumenta el valor de la
variable i, entonces el ciclo nunca
alcanzará su condición de salida,
por ende, el loop será infinito.
/* Operadores de asignación */
Operadores de asignación
Los operadores de asignación permiten realizar una operación sobre una variable, pero a la
vez sobreescribir esa misma variable, básicamente, son modificadores de esa variable.
"Bomba de tiempo"
Bomba de tiempo
Paso 1
Crear el archivo bomba.py
Paso 2
En este caso podemos utilizar sys.argv para ingresar el número de segundos antes
de explotar.
import sys
i = int(sys.argv[1]) # fijar valor inicial
Bomba de tiempo
Solución
Paso 3
Creamos un ciclo que nos permita generar decremento, desde el valor inicial hasta
cero.
import sys
i = int(sys.argv[1]) # fijar valor inicial
# el ciclo terminará cuando i sea 0
while i > 0:
print(i)
i -= 1 # i irá decreciendo en 1 unidad.
Bomba de tiempo
Solución
Paso 4
Para que efectivamente i represente un segundo, podemos utilizar la librería time, la
que nos permitirá esperar un segundo entre cada decremento. La idea es que al
terminar el ciclo, la bomba explote, de manera que el código completo se vea así:
import time
import sys
i = int(sys.argv[1]) # fijar valor inicial
while i > 0:
print(i) # Muestra el valor de i
time.sleep(1) # espera un segundo
i -=1 # Descuenta 1 al valor de i.
Bomba de tiempo i = 5
Solución print(i) # Muestra el valor 5
time.sleep(1) # espera un segundo
i = 4 # Descuenta 1 al valor de i.
Paso 5 print(i) # Muestra el valor 4
time.sleep(1) # espera un segundo
Si bien este ejercicio puede
parecer simple, no es tan i = 3 # Descuenta 1 al valor de i.
print(i) # Muestra el valor 3
intuitivo entender el código. time.sleep(1) # espera un segundo
A continuación, se muestra
i = 2 # Descuenta 1 al valor de i.
cómo sería en caso de no utilizar print(i) # Muestra el valor 2
un ciclo, a través de un ejemplo time.sleep(1) # espera un segundo
i = 0
# En este punto se evalúa el fin de ciclo ya que i es cero.
Contador Acumulador
Aumenta de 1 en 1. Acumula, el valor anterior más un valor
adicional.
● cont = cont + 1
● cont += 1 ● acu = acu + valor
● acu += valor
También es posible utilizar el
operador de asignación +=
para ir acumulando strings.
1 + 2 + 3 + ... + 100 = ¿?
Resolver esto es muy similar a contar cien veces, pero además de contar, se debe ir
guardando la suma acumulada en cada iteración.
Tips:
● Itera 100 veces.
● En cada iteración, utiliza un contador para almacenar la iteración.
● En cada iteración, asegúrate de utilizar un acumulador para acumular tus contadores.
● El acumulador luego de terminado el ciclo, corresponderá al resultado de la suma.
● Asegúrate de iniciar el contador y el acumulador antes de entrar al ciclo.
Sumando de 1 a 100
Solución
(continuación)