Ejercicio 02 — Dada una lista hardcodeada, imprime el mayor y el menor SIN usar…
Dificultad: verde · Módulo 05 (Listas y comprehensions)
Enunciado
Dada una lista hardcodeada, imprime el mayor y el menor SIN usar max()/min()
Cómo se resuelve
Encontrar el mayor y el menor de una lista “a mano”, sin max() ni min(), enseña el patrón clásico de recorrer comparando contra un candidato que vas actualizando.
mayor = numeros[0]ymenor = numeros[0]— arrancamos ambos con el primer elemento. Indexar con[0]es idéntico a C. Inicializar con un valor real de la lista (no con 0 ni con un número gigante) evita errores si todos los datos son negativos o muy grandes.for n in numeros[1:]— recorremos desde el segundo elemento en adelante.numeros[1:]es slicing: crea una sublista que empieza en el índice 1 y llega al final, así no volvemos a comparar el primero contra sí mismo.- Dentro,
if n > mayor: mayor = nyif n < menor: menor = n— cada elemento se compara con los mejores candidatos hasta ahora y los sustituye si los supera. Al terminar el bucle,mayorymenorcontienen los extremos. - Fíjate en que en Python
for n in numerositera directamente sobre los valores, no sobre índices como elfor (i=0; i<n; i++)de C; el slicing nos da el “empezar en 1” sin manejar índices.
Trampa habitual: inicializar mayor = 0. Si la lista fuese [-5, -2, -9], el 0 nunca se supera y darías un máximo falso. Por eso se parte del primer elemento real.
Para practicar — cópialo y complétalo
Pega este esqueleto y completa los TODO. Es la mejor forma de aprender: inténtalo antes de mirar la solución.
# Curso de Python — Modulo 05: Listas y comprehensions
# Ejercicio 02 — PRACTICA (rellena los TODO)
# Enunciado: Dada una lista hardcodeada, imprime el mayor y el menor SIN usar max()/min()
# Dificultad: verde
# Ejecutar: python3 ej02_practica.py
numeros = [4, 1, 9, 3, 7]
# TODO: inicializa mayor y menor con el primer elemento de la lista
mayor = 0
menor = 0
# TODO: recorre el resto de la lista con un for (pista: usa slicing [1:])
# actualiza mayor y menor segun corresponda
for n in numeros:
pass # reemplaza con la logica correcta
# TODO: imprime "Max: X Min: Y"
print()Solución — cópiala y ejecútala
# Curso de Python — Modulo 05: Listas y comprehensions
# Ejercicio 02 — MODELO (resuelto)
# Enunciado: Dada una lista hardcodeada, imprime el mayor y el menor SIN usar max()/min()
# Dificultad: verde
# Ejecutar: python3 ej02_modelo.py
numeros = [4, 1, 9, 3, 7]
# Inicializamos con el primer elemento, igual que en C
mayor = numeros[0]
menor = numeros[0]
# Recorremos desde el segundo elemento (slicing [1:])
for n in numeros[1:]:
if n > mayor:
mayor = n
if n < menor:
menor = n
print(f"Max: {mayor} Min: {menor}")Cómo usarlo
Pega el código en un fichero y ejecútalo con tu toolchain habitual (o el botón de Ejecutar de tu editor). Antes de mirar la solución, intenta completar tú el esqueleto: es la mejor forma de aprender.