Ir al contenido principal

Ejercicios de Python para principiantes: guía práctica con respuestas

Resuelve ejercicios de Python para principiantes, empezando por variables sencillas y avanzando hacia funciones, estructuras de datos y proyectos guiados.
Actualizado 17 sept 2026  · 12 min leer

Explorar con IA

ChatGPTClaudePerplexity

La mejor forma de aprender Python es ganar soltura con repetición, experimentación y resolución de problemas. Por eso el enfoque de «aprender haciendo» está en el centro de la formación de programadores eficaces. 

Escribiendo código, cometiendo errores y corrigiéndolos es como de verdad desarrollas habilidades.

En este artículo trabajaremos una serie estructurada de ejercicios de Python diseñados específicamente para principiantes. Empezamos con variables sencillas y avanzamos poco a poco hacia funciones, estructuras de datos y pequeños proyectos con datos.

Antes de seguir leyendo, aquí tienes un reto: intenta resolver los tres primeros ejercicios ahora mismo, sin mirar las explicaciones. Aunque te atasques, el intento es donde más se aprende.

Si prefieres una experiencia más guiada, los cursos de DataCamp comprueban tu sintaxis y tu lógica paso a paso. Esto evita que pequeños fallos bloqueen tu progreso y es especialmente útil al empezar. Un buen punto de partida es el curso Introduction to Python.

Primeros pasos con los ejercicios de Python

Antes de lanzarte a los ejercicios, necesitas un entorno básico para escribir y ejecutar código Python. Por suerte, empezar es más fácil que nunca.

Preparación

Para ejecutar Python en local, instala un editor de código amigable para principiantes como Visual Studio Code.

Una configuración típica sería así:

vscode

VS Code es un buen sitio para empezar a programar: es de código abierto y gratuito. Visita su página de descarga para bajarlo e instálalo cuando termine la descarga.

Si prefieres no instalar nada, puedes usar DataLab, un entorno en el navegador que te permite ejecutar código Python (y SQL) al instante. Es ideal para seguir tutoriales, probar fragmentos y experimentar sin preocuparte por la configuración.

Cómo usar estos ejercicios

Para maximizar tu aprendizaje, cada ejercicio está pensado para que lo intentes antes de leer la solución o la explicación.

La mejor manera de sacarles partido es:

  • Dedica al menos 15 minutos a intentar una solución por tu cuenta
  • Escribe el programa completo, aunque te parezca repetitivo
  • Consulta las respuestas solo después de haberlo intentado

Tienes un solucionario completo de todos los ejercicios en este cuaderno de DataLab enlazado. Así podrás comparar tu enfoque con una solución que funciona y entender alternativas para resolver el mismo problema.

exercise solutions

Ejercicios de Python sobre variables, entrada y salida

Empecemos con ejercicios básicos centrados en los bloques fundamentales: guardar valores, leer entradas del usuario e imprimir resultados en pantalla.

El saludo personalizado

Para empezar, veamos un ejercicio sencillo de Python que imprime un mensaje personalizado.

Ejercicio

Escribe un programa que:

  • Pida al usuario su nombre usando input()

  • Pida al usuario su edad usando input()

  • Imprima un saludo usando cadenas formateadas

  • Calcule el año en que el usuario cumple 100

Antes de escribir código, ayuda pensar en cómo fluye la información por un programa sencillo como este. El usuario proporciona texto sin procesar, Python lo guarda en variables y luego tú transformas esos valores en algo con sentido. 

Este ejercicio refleja muchos programas reales, donde la entrada del usuario rara vez es usable tal cual y primero hay que validarla o convertirla.

Código inicial

Aquí tienes un código inicial para guiarte:

# Task: Ask for the user's name
name = input("Enter your name: ")

# Task: Ask for the user's age (note: input() returns a string)
age_str = input("Enter your age: ")

# Task: Convert age_str to an int
# age = ...

# Task: Calculate the year the user turns 100
# Tip: you'll need the current year
# current_year = ...
# year_turn_100 = ...

# Task: Print a personalized message using an f-string
# print(...)

Conceptos clave practicados

  • input() siempre devuelve una cadena

  • Convertir cadenas a enteros con int()

  • Aritmética básica con números

  • Formato de cadenas con f-strings

Este ejercicio te enseña que a menudo hay que transformar la entrada del usuario antes de usarla en cálculos.

El conversor de temperatura

Apliquemos tus habilidades de Python a unas conversiones de unidades básicas.

Ejercicio

Escribe un programa que:

  • Pida al usuario una temperatura en grados Celsius

  • La convierta a Fahrenheit con la fórmula: F = (C × 9/5) + 32

  • Imprima la temperatura convertida

Código inicial

Aquí tienes un código inicial para guiarte:

# Task: Ask the user for a Celsius temperature
celsius_str = input("Temperature in Celsius: ")

# Task: Convert the input to a float
# celsius = ...

# Task: Apply the conversion formula
# fahrenheit = ...

# Task: Print the result (consider formatting to 1–2 decimal places)
# print(...)

Conceptos clave practicados

  • Números de coma flotante

  • Expresiones aritméticas

  • Conversión de tipo con float()

Este ejercicio refuerza que no todas las entradas numéricas son enteras y que Python maneja decimales de forma natural.

El rompecabezas del intercambio

Este ejercicio parece trivial, pero es común que al principio se piense en las variables como cajas que hay que vaciar y rellenar paso a paso. Veamos cómo podemos intercambiar valores en Python.

Ejercicio

Tienes dos variables: a = 5 y b = 10. Intercambia sus valores sin reasignarlos manualmente valor a valor.

Python permite una forma más expresiva de pensar la asignación, donde los valores se pueden desempaquetar y reasignar en una sola operación.

Código inicial

Aquí tienes un código inicial para guiarte:

a = 5
b = 10

# Task: Swap a and b
# Hint: Try a temporary variable first.
# Then try the Pythonic approach (tuple unpacking).

# Task: Print the swapped values to verify
# print("a:", a)
# print("b:", b)

Conceptos clave practicados

  • Asignación de variables
  • Variables temporales vs desempaquetado de tuplas

Esto introduce el desempaquetado de tuplas, una característica que hace Python conciso y expresivo.

Para más información sobre lo básico, echa un vistazo a nuestra chuleta de Python.

Ejercicios de Python sobre flujo de control y lógica

El flujo de control permite que tus programas tomen decisiones y repitan acciones según condiciones.

El comprobador par o impar

Un uso común del operador módulo es comprobar si un número es par o impar. Probémoslo.

Ejercicio

Escribe un programa que:

  • Pida al usuario un número

  • Use el operador módulo %

  • Imprima si el número es par o impar

Código inicial

Aquí tienes un código inicial para guiarte:

# Task: Ask the user for a number
num_str = input("Enter a whole number: ")

# Task: Convert to int
# num = ...

# Task: Use modulo (%) to decide even vs odd
# if ...:
#     print("Even")
# else:
#     print("Odd")

Conceptos clave practicados

Suele ser el primer ejemplo donde se ve cómo las condiciones controlan el comportamiento del programa.

El clásico reto FizzBuzz

Uno de los retos de programación más comunes es FizzBuzz. Veamos en qué consiste.

Ejercicio

Imprime los números del 1 al 100 con estas reglas:

  • Los múltiplos de 3 imprimen Fizz

  • Los múltiplos de 5 imprimen Buzz

  • Los múltiplos de ambos imprimen FizzBuzz

Este ejercicio te entrena a pensar con árboles de decisión y casos límite, una habilidad crucial al escribir programas reales.

Código inicial

Aquí tienes un código inicial para guiarte:

# Task: Loop from 1 to 100
for n in range(1, 101):
    # Task: Check multiples of 3 AND 5 first
    # if ...:
    #     print("FizzBuzz")

    # Task: Then multiples of 3
    # elif ...:
    #     print("Fizz")

    # Task: Then multiples of 5
    # elif ...:
    #     print("Buzz")

    # Task: Otherwise, print the number
    # else:
    #     print(n)
    pass

Conceptos clave practicados

  • Bucles for

  • Orden de las condiciones

  • Operadores lógicos

Este ejercicio es casi un rito de iniciación y se usa para enseñar pensamiento estructurado en el flujo de control. Lee más sobre bucles en nuestro tutorial de bucles en Python.

El juego de adivinar

Este ejercicio introduce programas interactivos que responden dinámicamente a la entrada del usuario.

Ejercicio

Escribe un programa que:

  • Genere un número aleatorio (importando random)

  • Use un bucle while para pedir intentos

  • Imprima "Too high" o "Too low" tras cada intento

  • Se detenga cuando se acierte el número

Suele ser el primer ejercicio donde se experimenta un programa interactivo en lugar de lineal. A diferencia de scripts que van de arriba a abajo y terminan, este sigue ejecutándose hasta que se cumple una condición.

El salto conceptual clave aquí es entender la terminación de bucles.

Código inicial

Aquí tienes un código inicial para guiarte:

import random

# Task: Pick a random number in a reasonable range
# target = random.randint(1, 100)

# Task: Use a while loop to keep asking until correct
# while ...:
#     guess_str = input("Your guess (1–100): ")
#     # guess = ...
#     # if guess > target:
#     #     print("Too high")
#     # elif guess < target:
#     #     print("Too low")
#     # else:
#     #     print("Correct!")
#     #     break

Conceptos clave practicados

  • Importación de módulos (random)

  • Bucles while

  • Condiciones de salida de bucles

Ejercicios de Python sobre listas, bucles e iteración

Las listas te permiten trabajar con colecciones de valores, y los bucles procesarlas de forma eficiente.

La suma de una lista

Este patrón aparece a menudo en flujos de trabajo de procesamiento y análisis de datos.

Ejercicio

Escribe un programa que sume todos los números de una lista sin usar la función integrada sum(). El propio programa debe realizar la lógica de suma explícitamente en un bucle, en lugar de apoyarse en otras utilidades.

Código inicial

Aquí tienes un código inicial para guiarte:

numbers = [3, 7, 2, 9, 4]

# Task: Create an accumulator variable
# total = ...

# Task: Loop through numbers and add each value to total
# for ...:
#     ...

# Task: Print the final total
# print(total)

Conceptos clave practicados

  • Inicializar una variable acumuladora

  • Iterar con bucles for

  • Actualizar valores paso a paso

Para más ejemplos sobre listas, consulta nuestra guía sobre las preguntas más comunes sobre listas en Python.

Encontrar el número máximo

El siguiente ejercicio es parecido al anterior, pero funciona de forma diferente dentro del bucle. Refuerza el pensamiento algorítmico y refleja cómo funcionan internamente funciones integradas.

Ejercicio

Reta al usuario a encontrar el mayor número de una lista sin usar max().

Código inicial

Aquí tienes un código inicial para guiarte:

numbers = [12, 5, 27, 3, 19]

# Task: Initialize current_max using the first element
# current_max = numbers[0]

# Task: Loop through the remaining elements and update current_max
# for ...:
#     if ...:
#         current_max = ...

# Task: Print the largest number
# print(current_max)

Conceptos clave practicados

  • Lógica de comparación
  • Seguimiento de estado durante la iteración

Eliminar duplicados

Los datos del mundo real son desordenados y, a menudo, incluyen duplicados. Este ejercicio te prepara para tareas de limpieza de datos.

Ejercicio

Convierte una lista con elementos duplicados en una nueva lista con solo elementos únicos.

A primera vista puede parecer simple, pero introduce la idea de registrar lo que ya has visto. Es un concepto fundamental en el procesamiento de datos, donde identificar y eliminar registros duplicados es habitual.

Código inicial

Aquí tienes un código inicial para guiarte:

data = ["apple", "banana", "apple", "orange", "banana", "kiwi"]

# Task: Create a new list for unique items
# unique = []

# Task: Loop through data and append items you haven't seen yet
# for item in data:
#     if ...:
#         ...

# Task: Print or return the unique list
# print(unique)

Conceptos clave practicados

  • Comprobaciones de pertenencia con in

  • Construcción de nuevas listas

  • Comprender la unicidad de los datos

Ejercicios de Python sobre diccionarios y manejo de cadenas

Los diccionarios y las cadenas son esenciales para organizar y transformar datos textuales. Veamos cómo manejarlos.

El contador de frecuencias de caracteres

Este ejercicio te enseña a construir tablas de frecuencias, una tarea común en análisis de datos.

Ejercicio

Toma una cadena de entrada y devuelve un diccionario que cuente cuántas veces aparece cada carácter.

Este ejercicio supone un gran paso conceptual: construir una estructura de datos dinámicamente mientras el programa se ejecuta. En lugar de trabajar con una lista o diccionario predefinidos, creas y actualizas entradas en función de los datos que vas encontrando.

Código inicial

Aquí tienes un código inicial para guiarte:

text = input("Enter some text: ")

# Task: Create an empty dictionary
# counts = {}

# Task: Loop over each character and update counts
# for ch in text:
#     # Option A: counts[ch] = counts.get(ch, 0) + 1
#     # Option B: if ch in counts: ... else: ...
#     pass

# Task: Print the frequency table
# print(counts)

Conceptos clave practicados

  • Diccionarios

  • Método .get()

  • Inicialización condicional

La agenda telefónica sencilla

Este ejercicio toca la lógica de diccionarios, base para entender más adelante las estructuras de datos tabulares.

Ejercicio

Crea un programa que guarde nombres y números en un diccionario y permita buscar por nombre.

Este ejercicio introduce la idea de usar un programa como herramienta de consulta persistente en vez de un cálculo puntual. Estás modelando una versión simplificada de cómo muchas aplicaciones guardan y recuperan información.

Código inicial

Aquí tienes un código inicial para guiarte:

phonebook = {
    # "Alice": "9123 4567",
    # "Ben": "9876 5432",
}

# Task: (Optional) add entries via input()
# name = input("Name to add: ")
# number = input("Number to add: ")
# phonebook[name] = number

# Task: Search loop (one lookup is fine for a start)
query = input("Search name: ")

# Task: Print the number if found, otherwise print a friendly message
# if ...:
#     print(...)
# else:
#     print("Not found")

Conceptos clave practicados

  • Búsquedas en diccionarios
  • Relaciones clave-valor

Si quieres profundizar en diccionarios, te recomiendo nuestra guía completa sobre los métodos de diccionario en Python.

Comprobador de palíndromos

Este ejercicio combina procesamiento de texto con comparación lógica a través de palíndromos.

Ejercicio

Un palíndromo es una palabra, frase, número o secuencia de caracteres que se lee igual de izquierda a derecha que de derecha a izquierda. Crea un script que compruebe si una cadena cumple esta condición (ignorando mayúsculas y espacios).

Código inicial

Aquí tienes un código inicial para guiarte:

text = input("Enter a word or phrase: ")

# Task: Normalize (lowercase + remove spaces)
# normalized = ...

# Task: Reverse using slicing
# reversed_text = ...

# Task: Compare and print a result message
# if ...:
#     print("Palindrome")
# else:
#     print("Not a palindrome")

Conceptos clave practicados

  • Métodos de cadena (lower(), replace())

  • Rebanado de cadenas ([::-1])

Ejercicios de Python sobre funciones y modularidad

Las funciones te permiten escribir código reutilizable y organizado en lugar de repetir lógica.

La calculadora de factoriales

La calculadora de factoriales te ayudará a entender los valores de retorno, fundamentales para construir programas grandes.

Ejercicio

Define una función que reciba un entero y devuelva su factorial usando un bucle.

La distinción entre imprimir un valor y devolver un valor es clave. Devolver resultados permite componer tu función con otro código, esencial cuando los programas crecen más allá de un solo archivo.

Código inicial

Aquí tienes un código inicial para guiarte:

def factorial(n: int) -> int:
    """Return n! (factorial of n) using a loop."""
    # Task: Decide how to handle n < 0

    # Task: Initialize result
    # result = ...

    # Task: Multiply result by each integer from 1 to n
    # for ...:
    #     ...

    # Task: Return the computed factorial
    # return result
    pass

# Optional quick test
# print(factorial(5))  # expected: 120

Conceptos clave practicados

  • Definición de funciones
  • Cálculos basados en bucles
  • Devolver valores vs imprimir

Lee más sobre funciones en nuestro tutorial de funciones en Python.

Validador de números primos

Ahora veremos una función que valida números primos. Te ayudará a crear funciones reutilizables.

Ejercicio

Escribe una función que devuelva True si un número es primo y False en caso contrario.

Comprobar primos también muestra cómo las funciones encapsulan lógica de forma limpia. Una vez escrita, puedes reutilizarla sin conocer sus detalles internos.

Código inicial

Aquí tienes un código inicial para guiarte:

def is_prime(n: int) -> bool:
    """Return True if n is prime, otherwise False."""
    # Task: Handle small cases (n <= 1)

    # Task: Check divisibility from 2 up to an appropriate limit
    # for ...:
    #     if ...:
    #         return False

    # Task: If no divisors found, return True
    # return True
    pass

# Optional quick tests
# print(is_prime(2))   # expected: True
# print(is_prime(15))  # expected: False

Conceptos clave practicados

  • Iteración en bucle
  • Devoluciones tempranas
  • Eficiencia lógica

Impresor flexible de argumentos

Esto introduce firmas de funciones avanzadas usadas en muchas librerías de Python.

Ejercicio

Crea una función que acepte cualquier número de argumentos usando *args y los imprima uno por uno.

Este ejercicio te expone a una de las características más flexibles de Python: los argumentos de longitud variable. Te hace pasar de entradas fijas a funciones que se adaptan a distintos patrones de uso.

Entender *args facilita leer y usar librerías reales de Python, donde a menudo las funciones aceptan un número flexible de parámetros por comodidad y extensibilidad.

Código inicial

Aquí tienes un código inicial para guiarte:

def print_args(*args) -> None:
    """Print each positional argument on its own line."""
    # Task: Loop over args and print each one
    # for ...:
    #     print(...)
    pass

# Optional quick test
# print_args("hello", 42, True)

Conceptos clave practicados

  • Argumentos de longitud variable
  • Flexibilidad de funciones

Aplicar tus habilidades de Python con proyectos guiados

Los ejercicios construyen habilidades, pero los proyectos las convierten en confianza.

Investigando películas de Netflix

netflix guided projects

El proyecto guiado Investigating Netflix Movies plantea una pregunta en apariencia simple: ¿las películas se están acortando con el tiempo? Para responderla, trabajarás con un conjunto de datos real de títulos de Netflix y transformarás filas en bruto en una idea clara y visual.

Lo potente de este proyecto es que hace de puente entre los fundamentos de Python para principiantes y el análisis de datos aplicado. Verás cómo la lógica sencilla escala cuando se combina con las herramientas adecuadas, y todo sin instalar nada en local.

El Dr. Semmelweis y el descubrimiento del lavado de manos

handwashing guided project

El Dr. Semmelweis and the Importance of Handwashing te pone en la piel de un analista que investiga un problema histórico real. A mediados del siglo XIX, el Dr. Ignaz Semmelweis observó una mortalidad inusualmente alta en una sala respecto a otra, pero no tenía herramientas computacionales para demostrar el porqué.

Con registros históricos, analizarás datos de mortalidad antes y después de introducir el lavado de manos. El proyecto se centra en manipular datos tabulares con pandas, calcular tasas y comparar promedios a lo largo del tiempo. 

Explorando el mercado de Airbnb en Nueva York

airbnb guided project

En el proyecto Exploring Airbnb Market Trends te enfrentas a un escenario muy cercano al trabajo analítico real: datos sucios e inconsistentes que requieren bastante limpieza antes de poder analizarlos en condiciones. 

El conjunto de datos contiene anuncios con precios guardados como cadenas, puntuaciones de reseñas ausentes y formatos inconsistentes.

Tu tarea principal es limpiar y estandarizar los datos. El proyecto refuerza la idea de que la preparación de datos no es un trámite previo, sino una habilidad analítica clave. A menudo, la mayor parte del tiempo de los profesionales de datos se dedica a limpiar, y este proyecto es un gran punto de control práctico para esa competencia.

Conclusión

Has empezado con variables simples y entrada de usuario, has pasado por flujo de control, estructuras de datos y funciones, y por último lo has aplicado todo en proyectos guiados. Estos ejercicios deberían haberte dado una buena idea de cómo se usa Python en entornos reales.

Tu siguiente paso natural es un aprendizaje estructurado. La práctica constante, unida a una instrucción guiada, es la vía más rápida para convertir ejercicios en dominio. Te recomiendo inscribirte en nuestros itinerarios Python Programming o Data Scientist para empezar.

Preguntas frecuentes sobre ejercicios de Python

¿Cuál es la mejor plataforma para practicar retos de programación en Python?

Las mejores plataformas combinan práctica con código y feedback estructurado. DataCamp es excelente para práctica guiada porque ofrece programación en el navegador (sin instalación), feedback instantáneo en los ejercicios, itinerarios de habilidades y de carrera, y proyectos guiados con datos reales.

¿Cómo puedo usar eficazmente la repetición espaciada para aprender Python?

La repetición espaciada funciona mejor aplicada a conceptos, no solo a la sintaxis. En lugar de releer apuntes una y otra vez, vuelve a las mismas ideas mediante ejercicios cada vez más difíciles con el paso del tiempo.

¿Cuáles son algunos proyectos avanzados de Python para principiantes?

Buenos ejemplos de proyectos avanzados incluyen crear una app de tareas en la línea de comandos con persistencia en archivos, analizar un CSV con pandas y visualizaciones básicas, o crear un pequeño cliente de API que obtenga y procese datos de un endpoint público.


Austin Chia's photo
Author
Austin Chia
LinkedIn

Soy Austin, bloguero y escritor técnico con años de experiencia como científico de datos y analista de datos en el sector sanitario. Empecé mi andadura tecnológica con una formación en biología, y ahora ayudo a otros a hacer la misma transición a través de mi blog tecnológico. Mi pasión por la tecnología me ha llevado a escribir para decenas de empresas de SaaS, inspirando a otros y compartiendo mis experiencias.

Temas
Python

Cursos de Python para principiantes

Curso

Introducción a Python

4 h
7M
Domina los fundamentos del análisis de datos con Python en cuatro horas y descubre sus paquetes más usados.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

blog

Cómo aprender Python desde cero en 2026: Una guía experta

Descubre cómo aprender Python en 2026, sus aplicaciones y la demanda de conocimientos de Python. Comienza hoy mismo tu aventura con Python. ​con nuestra guía completa.
Matt Crabtree's photo

Matt Crabtree

15 min

Tutorial

Desarrollo backend con Python: guía completa para principiantes

Esta guía completa te enseña los fundamentos del backend con Python. Aprende conceptos básicos, frameworks y buenas prácticas para empezar a crear aplicaciones web.
Oluseye Jeremiah's photo

Oluseye Jeremiah

15 min

Tutorial

Funciones en Python: cómo llamar y escribir funciones

Descubre cómo escribir funciones en Python reutilizables y eficientes. Domina los parámetros, las sentencias return y temas avanzados como las funciones lambda. Organiza mejor tu código con main() y otras buenas prácticas.
Karlijn Willems's photo

Karlijn Willems

14 min

Tutorial

Tutorial de pandas en Python: La guía definitiva para principiantes

¿Estás preparado para comenzar tu viaje de pandas? Aquí tienes una guía paso a paso sobre cómo empezar.
Vidhi Chugh's photo

Vidhi Chugh

15 min

Tutorial

Funciones lambda de Python: Guía para principiantes

Aprende sobre las funciones lambda de Python, su finalidad y cuándo utilizarlas. Incluye ejemplos prácticos y mejores prácticas para una implementación eficaz.
Mark Pedigo's photo

Mark Pedigo

10 min

Tutorial

Tutorial de Estructuras de Datos en Python

Introdúcete en las estructuras de datos de Python: aprende más sobre tipos de datos y estructuras de datos primitivas y no primitivas, como cadenas, listas, pilas, etc.
Sejal Jaiswal's photo

Sejal Jaiswal

24 min

Ver MásVer Más