Skip to main content
2 / 84
Completion requirements
Receive a grade
Opened: Monday, 6 April 2026, 12:00 AM
Closes: Sunday, 19 April 2026, 11:59 PM

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")
You have completed 0% of the lesson
0%