Sesión 14: Integración de funciones, colecciones y menús¶
Objetivo¶
Construir un programa que integre funciones, estructuras de datos y un menú sencillo de opciones.
Producto de la sesión¶
Elabora un programa modular con menú que registre, consulte o actualice información en memoria mostrando resultados claros.
Resultado esperado¶
Construye un programa que combine funciones, colecciones y menús para resolver varias opciones de trabajo, organizando la solución en entrada, proceso y salida.
Alcance de la sesión¶
- Uso de menús para organizar opciones de un programa.
- Integración de funciones con listas o diccionarios.
- Coordinación del flujo del programa entre registro, consulta, actualización y salida.
- Resolución de ejercicios guiados y práctica autónoma.
- Verificación de resultados con casos de prueba.
Base conceptual de la sesión¶
- menús
- integración de funciones
- listas o diccionarios
- flujo del programa
- organización de opciones
1. Menús
Concepto Presentan opciones al usuario y permiten dirigir el flujo del programa hacia diferentes operaciones.
Elementos o clasificación Menú de registro, consulta, actualización y salida.
Criterio de uso Un menú organiza las opciones disponibles y normalmente se combina con un ciclo para permitir varias operaciones en una misma ejecución.
Ejemplo de aplicación Mostrar 1. Registrar, 2. Consultar y 3. Salir.
2. Integración De Funciones
Concepto Une funciones pequeñas dentro de una solución mayor, donde cada función aporta una parte del proceso.
Elementos o clasificación Funciones de entrada, proceso, salida y control.
Criterio de uso Integrar funciones exige definir qué función resuelve cada tarea y cómo se comunican mediante parámetros y retornos.
Ejemplo de aplicación
mostrar_menu()
registrar()
consultar()
3. Listas O Diccionarios
Concepto Son estructuras de datos básicas que permiten organizar varios valores; la lista conserva orden por posición y el diccionario organiza por clave.
Elementos o clasificación Listas para datos ordenados y diccionarios para datos identificados por clave.
Criterio de uso La estructura se elige según la forma de acceso: listas para recorridos ordenados y diccionarios para consultas directas por clave.
Ejemplo de aplicación Usar una lista para nombres y un diccionario para productos con precio.
4. Flujo Del Programa
Concepto Es el orden general en que se ejecutan las instrucciones, se toman decisiones, se llaman funciones y se muestran resultados.
Elementos o clasificación Inicio, repetición de menú, ejecución de opción y cierre.
Criterio de uso El flujo principal debe coordinar lectura, decisión, llamada a funciones, actualización de datos y salida.
Ejemplo de aplicación Leer opción, ejecutar la acción elegida y volver al menú hasta salir.
5. Organización De Opciones
Concepto Consiste en ordenar las alternativas de un programa para que cada acción sea comprensible y tenga una respuesta definida.
Elementos o clasificación Opciones numeradas, validación de opción y operación asociada.
Criterio de uso Las opciones deben ser claras, mutuamente distinguibles y tener una respuesta prevista cuando el usuario ingresa una alternativa inválida.
Ejemplo de aplicación
if opcion == "1":
registrar()
elif opcion == "2":
consultar()
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: opción del menú y datos que se registrarán o consultarán.
- Proceso: validación de la opción, llamada a funciones y actualización de la estructura de datos.
- Salida: mensajes, registros o consultas mostrados según la opción elegida.
Mini laboratorio¶
Separa una tarea breve en función y flujo principal para reconocer cómo se integra un programa modular.
def mostrar_menu():
print('1. Continuar')
print('2. Salir')
mostrar_menu()
Ejercicio 1: Menú para registrar nombres¶
Construiremos un menú básico para registrar y mostrar nombres en una lista.
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:
def mostrar_menu():
print('1. Agregar nombre')
print('2. Mostrar nombres')
print('3. Salir')
nombres = []
opcion = ''
while opcion != '3':
mostrar_menu()
opcion = input('Opción: ')
if opcion == '1':
nombres.append(input('Nombre: '))
elif opcion == '2':
print(nombres)
Ejercicio 2: Eliminar un nombre del registro¶
Amplía el menú para permitir eliminar un nombre registrado de la lista.
Resolución guiada
- Comprender: el programa debe resolver este problema: Amplía el menú para permitir eliminar un nombre registrado de la lista
- Entradas: define la nueva opción del menú
- Procesos:
- decide qué sucede si el nombre no existe
- 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 el flujo completo con agregar, mostrar y eliminar
- 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:
def mostrar_menu():
print('1. Agregar nombre')
print('2. Mostrar nombres')
print('3. Eliminar nombre')
print('4. Salir')
nombres = []
opcion = ''
while opcion != '4':
mostrar_menu()
opcion = input('Opción: ')
if opcion == '1':
nombres.append(input('Nombre: '))
elif opcion == '2':
print(nombres)
elif opcion == '3':
nombre = input('Nombre a eliminar: ')
if nombre in nombres:
nombres.remove(nombre)
print('Nombre eliminado')
else:
print('Nombre no encontrado')
Ejercicio 3: Menú de cursos¶
Construye un menú para registrar cursos y consultar si un curso ya fue ingresado.
Resolución guiada
- Comprender: el programa debe resolver este problema: Construye un menú para registrar cursos y consultar si un curso ya fue ingresado
- Entradas: define la estructura de datos a utilizar
- Procesos:
- separa en funciones registrar y consultar
- 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:
- verifica el programa con varias opciones seguidas
- 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:
def mostrar_menu():
print('1. Registrar curso')
print('2. Consultar curso')
print('3. Salir')
cursos = []
opcion = ''
while opcion != '3':
mostrar_menu()
opcion = input('Opción: ')
if opcion == '1':
cursos.append(input('Curso: '))
elif opcion == '2':
curso = input('Curso a consultar: ')
print('Registrado:', curso in cursos)
Ejercicio 4: Lista de compras modular¶
Construye una lista de compras modular usando funciones y una lista de diccionarios.
Resolución guiada
- Comprender: el programa debe registrar productos y calcular el total sin mezclar toda la lógica.
- Entradas: nombre y precio de cada producto.
- Procesos:
- usa una función para agregar productos a la lista
- usa otra función para calcular el total
- recorre la lista de diccionarios para sumar precios
- Salidas: lista de productos y total acumulado.
- Pruebas: prueba con lista vacía y luego con dos productos.
- Código:
def agregar_producto(productos, nombre, precio):
productos.append({'nombre': nombre, 'precio': precio})
def calcular_total(productos):
total = 0
for producto in productos:
total += producto['precio']
return total
compras = []
agregar_producto(compras, 'Cuaderno', 5.5)
agregar_producto(compras, 'Lapicero', 1.2)
print('Productos:', compras)
print('Total:', calcular_total(compras))
Ejercicio 5: Menú de productos y precios¶
Crea un menú para registrar productos y consultar su precio usando un diccionario.
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:
def mostrar_menu():
print('1. Registrar producto')
print('2. Consultar producto')
print('3. Salir')
productos = {}
opcion = ''
while opcion != '3':
mostrar_menu()
opcion = input('Opción: ')
if opcion == '1':
nombre = input('Producto: ')
precio = float(input('Precio: '))
productos[nombre] = precio
elif opcion == '2':
nombre = input('Producto a consultar: ')
if nombre in productos:
print('Precio:', productos[nombre])
else:
print('Producto no encontrado')
Aprendizaje autónomo¶
Desarrolle el producto de la sesión resolviendo una o más de las siguientes actividades mediante un programa con menú y funciones claramente identificables.
1 Amplía un menú con una opción nueva de consulta o eliminación y verifica su funcionamiento.
# Actividad 1
2 Separa en funciones el registro y la visualización de datos dentro de un menú sencillo.
# Actividad 2
3 Prueba varias secuencias de opciones para validar el flujo del programa y corrige las respuestas ante opciones inválidas.
# Actividad 3
Evaluación del producto de la sesión¶
Lista de cotejo para revisar el producto elaborado por el estudiante:
- El menú organiza claramente las opciones del programa.
- Usa
whilepara repetir el menú hasta salir. - Separa tareas del flujo principal en funciones.
- Elige una estructura de datos adecuada para el problema.
- Permite registrar, consultar, mostrar o actualizar información de forma ordenada.
- Presenta resultados claros, ordenados y correctos según lo solicitado.
- Verifica el programa con varias secuencias de opciones antes de entregar.
- Entrega la evidencia del trabajo realizado.