Requisitos de finalización
Recibir una calificación
Abrió: lunes, 6 de abril de 2026, 00:00
Cierra: domingo, 19 de abril de 2026, 23:59
Proyecto integrador: Aplicación completa en Python con estructuras repetitivas avanzadas
¿Qué son estructuras repetitivas avanzadas en Python?
Son el uso combinado y eficiente de bucles for, while y técnicas como listas por comprensión, junto con estructuras de datos para crear aplicaciones completas y funcionales.
Estructuras repetitivas en Python
1. Bucle while
Se repite mientras una condición sea verdadera:
python
contador = 0
while contador < 5:
print(f"Contador: {contador}")
contador += 1
2. Bucle for
Itera sobre secuencias (listas, rangos, strings):
python
for i in range(5):
print(f"Número: {i}")
nombres = ["Ana", "Luis", "María"]
for nombre in nombres:
print(nombre)
3. Bucles anidados
Un bucle dentro de otro:
python
for i in range(3):
for j in range(3):
print(f"({i},{j})", end=" ")
print() # Nueva línea
4. List comprehension (comprensión de listas)
Forma compacta de crear listas:
python
# Forma tradicional
cuadrados = []
for i in range(5):
cuadrados.append(i**2)
# List comprehension
cuadrados = [i**2 for i in range(5)]
Estructuras de datos en Python
1. Listas
Colección ordenada y modificable:
python
estudiantes = ["Ana", "Luis", "Pedro"]
estudiantes.append("María") # Agregar
estudiantes.remove("Luis") # Eliminar
print(estudiantes[0]) # Acceder
2. Diccionarios
Pares clave-valor:
python
producto = {
"codigo": 101,
"nombre": "Laptop",
"precio": 800.50
}
print(producto["nombre"]) # Laptop
producto["stock"] = 10 # Agregar nueva clave
3. Listas de diccionarios
Ideal para datos estructurados:
python
productos = [
{"codigo": 101, "nombre": "Laptop", "precio": 800},
{"codigo": 102, "nombre": "Mouse", "precio": 15}
]
for producto in productos:
print(f"{producto['nombre']}: ${producto['precio']}")
Técnicas avanzadas con bucles
1. Búsqueda con bandera
python
def buscar_estudiante(estudiantes, nombre_buscar):
encontrado = False
for estudiante in estudiantes:
if estudiante["nombre"] == nombre_buscar:
print(f"Encontrado: {estudiante}")
encontrado = True
break
if not encontrado:
print("Estudiante no encontrado")
2. Validación con while
python
def obtener_edad():
while True:
try:
edad = int(input("Ingrese edad (1-120): "))
if 1 <= edad <= 120:
return edad
else:
print("Error: edad fuera de rango")
except ValueError:
print("Error: ingrese un número válido")
3. Acumuladores y contadores
python
def calcular_estadisticas(calificaciones):
if not calificaciones:
print("No hay datos")
return
total = sum(calificaciones)
promedio = total / len(calificaciones)
maximo = max(calificaciones)
minimo = min(calificaciones)
print(f"Promedio: {promedio:.2f}")
print(f"Máximo: {maximo}")
print(f"Mínimo: {minimo}")
4. Filtrado de datos
python
# Filtrar productos caros
productos_caros = [p for p in productos if p["precio"] > 100]
# Filtrar con función
def filtrar_aprobados(estudiantes):
aprobados = []
for est in estudiantes:
if est["calificacion"] >= 60:
aprobados.append(est)
return aprobados
5. Ordenamiento
python
# Ordenar lista simple
numeros = [5, 2, 8, 1, 9]
numeros.sort() # Modifica la lista
ordenados = sorted(numeros) # Crea nueva lista
# Ordenar diccionarios por clave
productos.sort(key=lambda x: x["precio"]) # Por precio
estudiantes.sort(key=lambda x: x["nombre"]) # Por nombre
Estructura de una aplicación completa
python
# 1. ALMACENAMIENTO DE DATOS
base_datos = []
# 2. FUNCIONES PRINCIPALES
def mostrar_menu():
print("\n=== MENÚ PRINCIPAL ===")
print("1. Agregar")
print("2. Mostrar")
print("3. Buscar")
print("4. Eliminar")
print("5. Salir")
def agregar_datos():
# Código para agregar
pass
def mostrar_datos():
# Código para mostrar
pass
# 3. PROGRAMA PRINCIPAL
def main():
while True:
mostrar_menu()
opcion = input("Seleccione opción: ")
if opcion == "1":
agregar_datos()
elif opcion == "2":
mostrar_datos()
elif opcion == "5":
print("¡Hasta pronto!")
break
else:
print("Opción inválida")
# 4. EJECUCIÓN
if __name__ == "__main__":
main()
Funciones útiles de Python
python
# Longitud de lista
len(mi_lista)
# Sumar elementos
sum([1, 2, 3, 4]) # 10
# Máximo y mínimo
max([5, 2, 8]) # 8
min([5, 2, 8]) # 2
# Verificar existencia
if "Ana" in nombres:
print("Existe")
# Enumerar con índice
for i, nombre in enumerate(nombres):
print(f"{i}: {nombre}")
# Comprimir listas
nombres = ["Ana", "Luis"]
edades = [20, 22]
for nombre, edad in zip(nombres, edades):
print(f"{nombre} tiene {edad} años")