Sesión 7: Repetición condicionada con while¶
Objetivo¶
Resolver problemas en los que la repetición depende de una condición de parada.
Producto de la sesión¶
Elabora un programa que controle repeticiones con while, use condiciones de parada o centinelas y presente resultados claros.
Resultado esperado¶
Construye un programa con while, centinelas y validación iterativa, organizando la solución en entrada, proceso y salida.
Alcance de la sesión¶
- Uso de
whilepara repeticiones condicionadas. - Aplicación de condición de parada, centinelas y validación iterativa.
- Control de ingreso y procesamiento de datos en ejercicios guiados y práctica autónoma.
- Verificación de resultados con casos de prueba.
Base conceptual de la sesión¶
- while
- condición de parada
- centinelas
- validación iterativa
- control de ingreso
1. While
Concepto Repite acciones mientras una condición siga siendo verdadera.
Elementos o clasificación Ciclo por condición, ciclo con centinela y ciclo de validación.
Criterio de uso Se usa cuando la repetición depende de una condición que puede cambiar durante la ejecución. Siempre debe existir una actualización que acerque el ciclo a su fin.
Ejemplo de aplicación
while venta != 0:
total += venta
2. Condición De Parada
Concepto Define cuándo debe detenerse el ciclo para evitar repeticiones infinitas.
Elementos o clasificación Parada por valor objetivo, por centinela o por validación satisfactoria.
Criterio de uso Debe ser clara, alcanzable y comprobable. Una condición mal definida puede provocar ciclos infinitos o terminar antes de tiempo.
Ejemplo de aplicación Terminar cuando el usuario ingresa 0.
3. Centinelas
Concepto Son valores especiales usados para indicar el fin de un proceso de ingreso o repetición.
Elementos o clasificación Valores de cierre como 0, fin, salir u otra marca especial.
Criterio de uso El centinela debe ser un valor fácil de reconocer y que no se confunda con datos válidos del problema.
Ejemplo de aplicación Usar 0 como marca de cierre del ingreso.
4. Validación Iterativa
Concepto Permite revisar datos dentro de un ciclo hasta que cumplan lo solicitado.
Elementos o clasificación Repetición hasta que el dato cumpla una regla.
Criterio de uso Se aplica cuando el programa debe insistir hasta recibir un dato aceptable, evitando continuar con información incorrecta.
Ejemplo de aplicación Repetir el ingreso de contraseña hasta que cumpla la regla.
5. Control De Ingreso
Concepto Ayuda a mantener la calidad de los datos leídos durante la ejecución.
Elementos o clasificación Lectura controlada, repetición de ingreso y verificación de regla.
Criterio de uso Ordena la lectura de datos para que el programa trabaje con valores consistentes durante todo el proceso.
Ejemplo de aplicación Seguir pidiendo dato mientras sea inválido.
Síntesis de la sesión Para resolver ejercicios, no basta con escribir instrucciones en Python. Es necesario reconocer los datos, nombrarlos correctamente, elegir operaciones o estructuras de control apropiadas y comprobar el resultado con casos de prueba.
| Aspecto | Pregunta guía |
|---|---|
| Entrada | ¿Qué datos necesita recibir el programa? |
| Proceso | ¿Qué cálculos, decisiones o repeticiones transforman los datos? |
| Salida | ¿Qué resultado debe mostrarse y con qué formato? |
| Prueba | ¿Con qué casos se demuestra que la solución funciona? |
Actividad práctica¶
La sesión se desarrolla con exploración inicial, ejercicios guiados, ejercicios de aplicación y una tarea tipo competencia.
Arquitectura¶
Entrada -> Proceso -> Salida
- Entrada: datos que se leerán o validarán durante el ciclo.
- Proceso: repetición con
while, actualización de la condición y control de parada. - Salida: resultado final obtenido cuando el ciclo termina.
Mini laboratorio¶
Explora un ciclo condicionado por una variable de control para reconocer cómo se actualiza hasta detenerse.
numero = 3
while numero > 0:
print('Cuenta:', numero)
numero -= 1
Ejercicio 1: Registro de ventas con centinela¶
Registraremos ventas hasta que el usuario ingrese 0 como señal de cierre.
Resolución guiada
- Comprender: explica con una oración completa cuál es el resultado que debe obtener el programa.
- Entradas: enumera cada dato de entrada e indica su tipo de dato esperado.
- Procesos:
- describe la operación, condición, recorrido o función principal que usarás para resolver el problema
- ordena las acciones principales antes de escribir el código
- prepara cómo obtendrás el resultado final antes de mostrarlo
- Salidas: especifica la salida esperada y el formato con que se debe mostrar.
- Pruebas:
- caso normal: usa datos habituales para comprobar que el resultado esperado se cumpla
- caso límite: prueba el valor exacto donde cambia la regla principal
- caso excepcional: revisa qué sucede con una entrada vacía, inválida o fuera de rango
- Código:
total = 0
venta = float(input('Venta (0 para terminar): '))
while venta != 0:
total += venta
venta = float(input('Venta (0 para terminar): '))
print('Total vendido:', total)
Ejercicio 2: Suma hasta centinela¶
Solicita números hasta que el usuario ingrese -1. Luego muestra la suma total de los valores ingresados.
Resolución guiada
- Comprender: el programa debe resolver este problema: Solicita números hasta que el usuario ingrese -1. Luego muestra la suma total de los valores ingresados
- Entradas: define el valor centinela
- Procesos:
- explica cuándo se acumula y cuándo se detiene el ciclo
- ordena las operaciones o decisiones antes de escribir el código
- prepara el resultado final que mostrarás al usuario
- Salidas: muestra el resultado solicitado por el enunciado con mensajes claros y ordenados.
- Pruebas:
- prueba con una secuencia corta y con salida inmediata
- caso límite: prueba el valor exacto donde cambia la regla, condición o cálculo principal
- caso excepcional: revisa qué ocurre con una entrada vacía, inválida o fuera de rango
- Código:
total = 0
numero = int(input('Número (-1 para salir): '))
while numero != -1:
total += numero
numero = int(input('Número (-1 para salir): '))
print('Total:', total)
Ejercicio 3: Validación de contraseña¶
Pide una contraseña hasta que tenga al menos 8 caracteres. Luego muestra un mensaje de acceso permitido.
Resolución guiada
- Comprender: el programa debe resolver este problema: Pide una contraseña hasta que tenga al menos 8 caracteres. Luego muestra un mensaje de acceso permitido
- Entradas: define la condición de repetición
- Procesos:
- explica qué dato se vuelve a solicitar
- ordena las operaciones o decisiones antes de escribir el código
- prepara el resultado final que mostrarás al usuario
- Salidas: muestra el resultado solicitado por el enunciado con mensajes claros y ordenados.
- Pruebas:
- prueba con contraseñas cortas y una válida
- caso límite: prueba el valor exacto donde cambia la regla, condición o cálculo principal
- caso excepcional: revisa qué ocurre con una entrada vacía, inválida o fuera de rango
- Código:
contrasena = input('Contraseña: ')
while len(contrasena) < 8:
contrasena = input('Contraseña: ')
print('Acceso permitido')
Ejercicio 4: Menú repetitivo simple¶
Construye un menú simple que se repita hasta que el usuario elija salir.
Resolución guiada
- Comprender: el programa debe seguir mostrando opciones mientras no se elija la opción de salida.
- Entradas: una opción del menú.
- Procesos:
- inicia la opción con un valor distinto de salir
- usa
whilepara repetir el menú - responde con
if,elifyelsesegún la opción elegida
- Salidas: mensaje para cada opción y mensaje de cierre.
- Pruebas: prueba opción
1, opción2, una opción inválida y finalmente3. - Código:
opcion = '0'
while opcion != '3':
print('1. Saludar')
print('2. Mostrar ayuda')
print('3. Salir')
opcion = input('Opción: ')
if opcion == '1':
print('Hola')
elif opcion == '2':
print('Elige una opción del menú.')
elif opcion != '3':
print('Opción inválida')
print('Programa finalizado')
Ejercicio 5: Contraseña con longitud y número¶
Solicita contraseñas hasta que el usuario ingrese una que cumpla longitud mínima y contenga un número.
Resolución guiada
- Comprender: redacta con tus palabras qué debe resolver la tarea.
- Entradas: define qué datos ingresan y el tipo que tendrán.
- Procesos:
- describe la estrategia, fórmula, condición, estructura o algoritmo que piensas aplicar
- ordena las acciones principales antes de escribir el código
- prepara cómo obtendrás el resultado final antes de mostrarlo
- Salidas: indica con claridad qué resultado debe mostrar o registrar la solución.
- Pruebas:
- caso normal: usa datos habituales para comprobar que la solución funcione
- caso límite: prueba el valor exacto donde cambia la regla principal
- caso excepcional: revisa qué ocurre con una entrada vacía, inválida o fuera de rango
- Código:
contrasena = input('Ingrese contraseña: ')
while True:
tiene_numero = False
for caracter in contrasena:
if caracter.isdigit():
tiene_numero = True
break
if len(contrasena) >= 8 and tiene_numero:
break
contrasena = input('Ingrese contraseña: ')
print('Contraseña válida')
Aprendizaje autónomo¶
Desarrolle el producto de la sesión resolviendo una o más de las siguientes actividades mediante un programa con while, condición de parada o centinelas claramente identificables.
1
Suma números hasta recibir un centinela distinto de 0 y muestra el total acumulado.
# Actividad 1
2
Valida repetidamente una entrada numérica hasta que cumpla una regla dada, por ejemplo estar entre 0 y 20.
# Actividad 2
3 Diseña un caso donde el ciclo se detenga por una condición textual ingresada por el usuario.
# Actividad 3
Evaluación del producto de la sesión¶
Lista de cotejo para revisar el producto elaborado por el estudiante:
- Identifica las entradas, la condición de parada y la salida del problema.
- Usa
whilede manera adecuada según la repetición condicionada del problema. - Actualiza correctamente la variable o condición de control para evitar ciclos infinitos.
- Usa centinelas o validación iterativa cuando corresponde.
- Presenta resultados claros, ordenados y correctos según lo solicitado.
- Verifica el programa con casos de prueba antes de entregarlo.
- Entrega la evidencia del trabajo realizado.