Saltar al contenido principal

Bloque 104. Repetición y sentencias de salto

Contenidos

Revisa los siguientes apartados de la Unidad para resolver los ejercicios:

Ejercicio 1. Menú en bucle

Muestra un menú de texto con tres opciones ("1. Sumar", "2. Restar", "3. Salir") y pide al usuario que elija una, dentro de un bucle while que se repite hasta que el usuario elige "Salir".

Usa elif para ejecutar la operación correspondiente, pidiendo dos números solo si la opción es sumar o restar, y usa break para salir del bucle en cuanto se elija la opción de salir.

Si el usuario introduce una opción que no existe, muestra el mensaje "Opción no válida" y deja que el menú se repita.

💾 Haz un commit al terminar el ejercicio.

Ejercicio 2. Validación con reintento

Pide al usuario un número entero positivo usando un bucle while que no termine hasta que el valor introducido sea válido (positivo). Al final, informa de cuántos intentos ha necesitado. Usa continue para saltar directamente a la siguiente iteración cuando el valor no sea válido, sin anidar más condicionales de lo necesario.

💾 Haz un commit al terminar el ejercicio.

Ejercicio 3. Tabla de multiplicar con range

Pide un número al usuario y muestra su tabla de multiplicar del 1 al 10 usando un for con range().

💾 Haz un commit al terminar el ejercicio.

Ejercicio 4. Cuadrados numerados con enumerate

Usando enumerate() sobre range(1, 6), muestra numerados del 1 al 5 los cuadrados de esos mismos números. Es decir:

1 -> 1
2 -> 4
3 -> 9
4 -> 16
5 -> 25

Pista: por defecto enumerate() empieza a contar en 0; usa su segundo argumento (enumerate(secuencia, start=1)) para que la numeración empiece en 1.

💾 Haz un commit al terminar el ejercicio.

Ejercicio 5. Búsqueda con else en el bucle

Crea un programa que permita adivinar al jugador una palabra secreta. La palabra secreta debe establecerse directamente en el código fuente (una cadena de texto literal, no se pide al jugador).

Ofrece hasta 5 intentos (con un for) para adivinarla. Usa la cláusula else del for para mostrar "Has perdido" solo si se agotan los 5 intentos sin acertar, y usa break para cortar el bucle en cuanto acierte, mostrando "¡Acertaste!" antes de salir.

💾 Haz un commit al terminar el ejercicio.

Ejercicio 6. Suma de dígitos

Pide al usuario un número entero positivo y, usando un bucle while, calcula y muestra la suma de sus dígitos. Por ejemplo, para 1234 el resultado debe ser 10.

Usa únicamente los operadores // y % sobre el número entero completo. Trabaja siempre con el dato como int y no lo hagas como str. Es decir, evita lo siguiente:

r = 0
for n in "1234":
r += int(n)
print(r)

💾 Haz un commit al terminar el ejercicio.

Ejercicio 7. Triángulo de asteriscos

Pide al usuario un número n y dibuja, con bucles for anidados, un triángulo de asteriscos de n filas, donde la fila i tiene i asteriscos:

*
**
***
****
*****

💾 Haz un commit al terminar el ejercicio.

Ejercicio 8. FizzBuzz

Recorre con un for los números del 1 al 100 y, para cada uno, muestra "Fizz" si es múltiplo de 3, "Buzz" si es múltiplo de 5, "FizzBuzz" si es múltiplo de ambos, o el propio número en cualquier otro caso.

💾 Haz un commit al terminar el ejercicio.

Ejercicio 9. Número capicúa

Pide al usuario un número entero positivo y, usando un bucle while, construye su número invertido dígito a dígito. Compara el número original con el invertido y muestra el mensaje "Es capicúa" o "No es capicúa", según corresponda (un capicúa se lee igual al derecho que al revés, como 1221 o 7).

Extrae los dígitos sin convertir el número a texto: usa únicamente los operadores // y % sobre el número entero.

💾 Haz un commit al terminar el ejercicio.

Ejercicio 10. Serie de Fibonacci

Pide al usuario cuántos términos n quiere calcular y muestra los primeros n términos de la serie de Fibonacci (cada término es la suma de los dos anteriores, empezando por 0 y 1), usando un for y dos variables acumuladoras que se van actualizando en cada vuelta.

💾 Haz un commit al terminar el ejercicio.

Ejercicio 11. Pirámide numérica

Pide al usuario un número n y dibuja, con bucles for anidados, una pirámide numérica de n filas, donde la fila i muestra los números del 1 al i seguidos:

1
12
123
1234

💾 Haz un commit al terminar el ejercicio.

Ejercicio 12. Números primos hasta N

Pide un número n y muestra todos los números primos entre 2 y n.

Para cada número, usa un bucle for con break que corte la comprobación en cuanto encuentres un divisor (no hace falta seguir comprobando el resto), y la cláusula else de ese bucle interno para mostrar el mensaje "<número> es primo" (por ejemplo, "7 es primo") si no se encontró ningún divisor.

💾 Haz un commit al terminar el ejercicio.

Ejercicio 13. Bucle infinito controlado

Escribe un pequeño asistente que muestre repetidamente el mensaje "Escribe 'salir' para terminar:", lea una respuesta con input() y la repita en pantalla, hasta que el usuario escriba exactamente "salir". Usa while True: para el bucle (una condición que nunca se hace falsa por sí sola) y break para salir de él en el momento adecuado.

Añade un comentario explicando qué pasaría si se te olvidara el break: el programa quedaría atrapado en un bucle infinito, sin terminar nunca ni devolver el control al usuario (habría que forzar su cierre con CTRL+C).

💾 Haz un commit al terminar el ejercicio.

Repaso

Al terminar los ejercicios, debes tener claro los siguientes conceptos:

  • Bucle while
  • Bucle for con range()
  • enumerate()
  • Actualización de variables dentro de un bucle
  • Variables acumuladoras
  • Bucles infinitos (y cómo evitarlos)
  • Sentencia break
  • Sentencia continue
  • Cláusula else de los bucles