06 Python - Ciclo While
06 Python - Ciclo While
Bucle while
Un bucle while permite repetir la ejecución de un grupo de instrucciones mientras se cumpla una condición (es decir,
mientras la condición tenga el valor True)
La sintaxis del bucle while es la siguiente:
while condición:
cuerpo del bucle
Cuando llega a un bucle while, Python evalúa la condición y, si es cierta, ejecuta el cuerpo del bucle. Una vez
ejecutado el cuerpo del bucle, se repite el proceso (se evalúa de nuevo la condición y, si es cierta, se ejecuta de
nuevo el cuerpo del bucle) una y otra vez mientras la condición sea cierta. Únicamente cuando la condición sea falsa,
el cuerpo del bucle no se ejecutará y continuará la ejecución del resto del programa.
La variable o las variables que aparezcan en la condición se suelen llamar variables de control. Las variables de
control deben definirse antes del bucle while y modificarse en el bucle while.
Por ejemplo, el siguiente programa escribe los números del 1 al 3:
Ejemplo de bucle while 1 1
i = 1 2
while i <= 3:
3
print(i)
i = i + 1 Programa terminado
print ("Programa terminado")
El ejemplo anterior y el siguiente se podrían haber programado con un bucle for.
Ejemplo de bucle while 2 1
i = 1 4
while i <= 50:
print(i) 13
i = 3*i + 1 40
print ("Programa terminado") Programa terminado
Una de las diferencias del bucle while con el for es que el número de iteraciones no está definida antes de empezar
el bucle, por ejemplo porque los datos los proporciona el usuario. Por ejemplo, el siguiente ejemplo pide un número
positivo al usuario una y otra vez hasta que el usuario lo haga correctamente:
Ejemplo de bucle while 3
numero = int(input("Escriba un número positivo: "))
while numero <= 0:
print ("¡Ha escrito un número negativo o nulo! Inténtelo de nuevo")
numero = int(input("Escriba un número positivo: "))
print ("Gracias por su colaboración")
Bucles infinitos
Por desgracia, es fácil programar involuntariamente un bucle infinito, por lo que es inevitable hacerlo de vez en
cuando, sobre todo cuando se está aprendiendo a programar.
Estos algunos ejemplos de bucles infinitos:
El programador ha olvidado modificar la variable de control dentro del bucle y el programa imprimirá
números 1 indefinidamente:
i = 1
while i <= 10:
print (i) 1 1 1 1 1 1 1 1 ...
El programador ha escrito una condición que se cumplirá siempre y el programa imprimirá números
consecutivos indefinidamente:
i = 1
while i > 0:
print (i)
i += 1 #Es la forma abreviada de escribir i = i + 1
1 2 3 4 5 6 7 8 9 10 11 ...
En el ejemplo siguiente, el programador ha escrito una condición que se cumplirá siempre y el programa
imprimirá números consecutivos, de dos en dos, indefinidamente:
i = 1
while i != 100:
print(i, end=" ")
i += 2 1 3 5 7 9 11 ... 97 99 101 ...
EJERCICIOS
6.A) Diseñá un programa que imprima el promedio de los 30 primeros números múltiplos de 3. Realizar dos versiones
del mismo programa: una que use la estructura while y otra versión que use ciclo for.
6.B) Escribí un programa que simule las tiradas de un dado hasta que el usuario lo requiera. El usuario debe adivinar
qué número salió optando por números del 1 al 6. El programa debe informar al finalizar: cantidad de tiradas, cantidad
de aciertos y cantidad de errores
6.C) Creá un programa que pida un carácter y un número. El programa tomará el número n y dibujará en pantalla n
veces el carácter ingresado. Por ejemplo, si se ingresa # y 3, se dibujará ###. No se permiten números mayores que 50.
Además se desea que el programa permita al usuario seguir ingresando datos hasta que él lo requiera.
6.D) Escribí un programa que pida dos números enteros. El programa pedirá de nuevo el segundo número mientras no
sea mayor que el primero. El programa terminará escribiendo los dos números.
NÚMERO MAYOR
Escriba un número: 6
Escriba un número mayor que 6: 6
6 no es mayor que 6. Inténtelo de nuevo: 1
1 no es mayor que 6. Inténtelo de nuevo: 8
6.E) Hacer un programa que encuentre los números primos entre el 1 y el número que desee el usuario. Un número
positivo es primo, si sólo tiene por divisores el uno y el mismo número. Basta con comprobar los posibles divisores
menores o iguales que la raíz cuadrada del número dado.
6.F) Escriba un programa que calcule la descomposición en factores primos de un número entero.
Escriba un número mayor que Escriba un número mayor que 1: Escriba un número mayor que 1: 1
1: 500 521 1 no es un número que 1. Inténtelo de
Descomposición en factores Descomposición en factores nuevo: 720
primos: primos: Descomposición en factores primos:
500 2 521 521 720 2
250 2 1 360 2
125 5 180 2
25 5 90 2
55 45 3
1 15 3
55
1
6.G) Escribí un programa que pida números decimales mientras el usuario escriba número mayores que el primero.
CADA VEZ MÁS GRANDES CADA VEZ MÁS GRANDES CADA VEZ MÁS GRANDES
Escriba un número: 3 Escriba un número: 14 Escriba un número: 5
Escriba un número mayor que 3: 1 Escriba un número mayor que 14: 14 Escriba un número mayor que 5: 10
Escriba un número mayor que 10: 12
1 no es mayor que 3. 14 no es mayor que 14. Escriba un número mayor que 12: 25
Escriba un número mayor que 25: 9
6.I) Diseñá un programa que pida la cantidad de números positivos que se tienen que escribir y a continuación pida
números hasta que se haya escrito la cantidad de números positivos indicada.
NÚMEROS POSITIVOS NÚMEROS POSITIVOS NÚMEROS POSITIVOS
Escriba la cantidad de números Escriba la cantidad de números Escriba la cantidad de números
positivos a escribir: 0 positivos a escribir: -3 positivos a escribir: 3
La cantidad debe ser mayor que 0. La cantidad debe ser mayor que 0.
Inténtelo de nuevo: 1 Inténtelo de nuevo: 1 Escriba un número: 10
Escriba otro número: 2
Escriba un número: 4 Escriba un número: -1 Escriba otro número: -5
Escriba otro número: 1 Escriba otro número: 2
Ha escrito 1 número positivo.
Ha escrito 2 números, 1 de ellos Ha escrito 4 números, 3 de ellos
positivo. positivos.
6.J) Escriba un programa que pida números mientras no se escriba un número negativo. El programa terminará
escribiendo la suma de los números introducidos.
SUMA DE NÚMEROS SUMA DE NÚMEROS
Escriba un número: -4 Escriba un número: 12
Escriba otro número: 3
La suma de los números positivos introducidos es 0. Escriba otro número: 0
Escriba otro número: 7
Escriba otro número: -1
6.K) Escriba un programa que pida un valor límite positivo y a continuación pida números hasta que la suma de los
números introducidos supere el límite inicial.
HASTA EL LÍMITE HASTA EL LÍMITE
Escriba el valor límite: -3 Escriba el valor límite: 12
El límite debe ser mayor que 0. Inténtelo de nuevo: 0
El límite debe ser mayor que 0. Inténtelo de nuevo: 5.5 Escriba un número: 5.2
Escriba otro número: -1
Escriba un número: 7.2 Escriba otro número: 9
Ha superado el límite. La suma de los números Ha superado el límite. La suma de los números
introducidos es 7.2. introducidos es 13.2.
Bibliografía:
Bahit, E. (2012). ”Curso Python para principiantes.” Buenos Aires: www.eugeniabahit.com
Downey, A., Elkner, J., Meyers, (2002) “Aprenda a Pensar Como un Programador”. Recuperado
desde: https://argentinaenpython.com/quiero-aprender-python/aprenda-a-pensar-como-un-
programador-con-python.pdf
González Duque, R. (2016). “Python para todos” . Recuperado de: www.mundogeek.net
Sánchez Alberca, A. (2020). “Ejercicios de Python”. Recuperado desde:
http://aprendeconalf.es/python/ejercicios/
Sintes Marco, B. (2020). “Introducción a la programación con Python - www.mclibre.org”
Recuperado desde: https://www.mclibre.org/consultar/python/