Ejercicio 04 — Dada una lista de enteros del 1 al 20, extrae solo los pares con…

Dificultad: verde · Módulo 05 (Listas y comprehensions)

Enunciado

Dada una lista de enteros del 1 al 20, extrae solo los pares con comprehension

Diagramas de flujo

Diagrama de flujo (actividad) del ejercicio 04

Diagrama de flujo (grafo) del ejercicio 04

Cómo se resuelve

Sacar solo los pares del 1 al 20 muestra la list comprehension con filtro: construir una lista nueva quedándote solo con los elementos que cumplen una condición, todo en una línea.

  1. range(1, 21) — genera los números del 1 al 20. El límite superior es exclusivo, por eso ponemos 21 para incluir el 20. range no crea la lista en memoria, va produciendo los valores conforme se piden.
  2. [x for x in range(1, 21) if x % 2 == 0] — la comprehension tiene dos partes: for x in range(...) recorre cada número y el if x % 2 == 0 decide cuáles pasan. Solo los que dan resto 0 al dividir entre 2 (los pares) entran en la lista resultante.
  3. x % 2 == 0 es el módulo, igual que en C: el resto de dividir entre 2. Si vale 0, el número es par.
  4. La ventaja frente a C: allí declararías un array, un contador y un bucle con un if que hace array[j++] = x. Aquí una sola expresión describe qué quieres (los pares) en vez de cómo construirlo paso a paso, y la lista se dimensiona sola.

Trampa habitual: olvidar que range(1, 21) no llega al 21. Si escribieras range(1, 20) te quedarías sin el 20, que es par y debería aparecer.

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 04 — PRACTICA (rellena los TODO)
# Enunciado: Dada una lista de enteros del 1 al 20, extrae solo los pares con comprehension
# Dificultad: verde
# Ejecutar: python3 ej04_practica.py
 
# TODO: usa una list comprehension con range(1, 21) y la condicion de paridad
#       patron: [expresion for variable in iterable if condicion]
pares = []  # reemplaza con la comprehension
 
# TODO: imprime la lista de pares
print()

Solución — cópiala y ejecútala

# Curso de Python — Modulo 05: Listas y comprehensions
# Ejercicio 04 — MODELO (resuelto)
# Enunciado: Dada una lista de enteros del 1 al 20, extrae solo los pares con comprehension
# Dificultad: verde
# Ejecutar: python3 ej04_modelo.py
 
# range(1, 21) genera 1..20; la comprehension filtra los divisibles por 2
pares = [x for x in range(1, 21) if x % 2 == 0]
 
print(pares)

Ejecútalo en el navegador

▶ Visualízalo paso a paso en Python Tutor — ve cómo cambian las variables línea a línea.

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