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.

  1. mayor = numeros[0] y menor = 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.
  2. 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.
  3. Dentro, if n > mayor: mayor = n y if n < menor: menor = n — cada elemento se compara con los mejores candidatos hasta ahora y los sustituye si los supera. Al terminar el bucle, mayor y menor contienen los extremos.
  4. Fíjate en que en Python for n in numeros itera directamente sobre los valores, no sobre índices como el for (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.

Conexiones