En este tutorial de Python para principiantes aprenderás los fundamentos básicos de uno de los lenguajes de programación más populares y versátiles del mundo. Con él podrás crear desde pequeños programas hasta grandes aplicaciones, pasando por análisis de datos, inteligencia artificial, desarrollo web o automatización de tareas.
Python se caracteriza por su sencillez de sintaxis, lo que lo convierte en el punto de partida ideal si nunca has programado antes. Además, es el lenguaje preferido en áreas como la ciencia de datos y el machine learning, lo que lo hace especialmente valioso en el mercado laboral actual.
Este tutorial está diseñado como una guía práctica paso a paso creado por el equipo de AprenderGratis.es donde tú mismo podrás copiar y ejecutar los ejemplos para poner en marcha tu primer código en cuestión de minutos.
¿Por qué deberías aprender Python?
- Es uno de los lenguajes más demandados por empresas tecnológicas y startups.
- Tiene una comunidad enorme que comparte recursos, librerías y soluciones.
- Es multiplataforma y gratuito, lo que significa que podrás usarlo en cualquier sistema operativo.
- Su curva de aprendizaje es más amable en comparación con otros lenguajes de programación.
¿A quién está dirigido este tutorial de Python?
Este tutorial está orientado a cualquier persona interesada en dar sus primeros pasos en la programación. No importa si no tienes conocimientos previos, ya que los ejemplos parten desde cero.
Resulta útil especialmente para:
- Estudiantes que buscan aprender programación como complemento a sus estudios.
- Profesionales que desean actualizarse en herramientas digitales y de análisis de datos.
- Personas que quieren dedicarse a la ciencia de datos, la inteligencia artificial o el desarrollo web.
- Aficionados que disfrutan aprendiendo nuevas habilidades tecnológicas.
¿Qué aprenderás en este tutorial de Python?
A lo largo del tutorial aprenderás sobre:
- Cómo instalar y usar Python en tu ordenador o en Google Colab (opción online sin instalaciones).
- Tu primer programa en Python: “Hola, mundo”.
- Operaciones matemáticas simples y uso de variables (calculadora simple en Python)
- Juego de Adivinanza con Python
- Contador de palabras en Python
- Generador de contraseñas aleatorias.
- Creador de calculadora multidivisa y cómo exportarlo a Excel o una página web.
- Extraer con Python los titulares de un periódico (tu propio Google News)
Puedes ir directamente a cualquier apartado de este tutorial en los siguientes enlaces, aunque te recomiendo seguir paso a paso cada uno de los ejemplos, ya que está pensado para que aprendas de forma escalonada:
Con estos ejemplos básicos, tendrás una primera base para continuar explorando por tu cuenta y avanzar hacia proyectos más complejos.
Comienza el tutorial de Python paso a paso:
Sigue los pasos que te muestro a continuación y suscríbete de forma gratuita a la newsletter donde daremos cada semana nuevos consejos o sigue el canal de Telegram o Whatsapp 🔔 para ser el primero en conocer las actualizaciones, nuevas guías y contenido exclusivo.
Si has llegado hasta aquí, dime, ¿necesitas que genere un video tutorial con estos ejemplos para que te sea más fácil de seguir cada uno de los pasos?
También estoy planteando crear un tutorial con ejemplos algo más avanzados para usuarios de Excel, ¿te gustaría que creara uno? Déjame tu respuesta en comentarios para animarme a hacerlo.
1. Preparar el entorno: instalar Python o comenzar con Google Colab para crear un proyecto
Antes de escribir tu primer programa, necesitas un lugar donde ejecutar Python, tienes dos opciones:
- Instalar en tu ordenador Python desde Python.org
- Usar Google Colab que te permite programar sin instalar nada en tu PC, tan solo entra a colab.research.google.com
Para este tutorial usaremos la plataforma gratuita de Google Colab, que es bastante más sencilla para iniciantes y te evita problemas durante la instalación del programa en tu PC.
Entra a Google Colab y pulsa en Nuevo Cuaderno (ver gráfico inferior):

Crea tu primer cuaderno, que será el entorno de trabajo y donde vas a programar en Python.
Se abrirá un notebook con una primera celda de código y un nombre como “Sin título.ipynb” arriba a la izquierda.
Renómbralo para tenerlo bien ordenado: haz clic en Sin título.ipynb > escribe un nombre (ej. tutorial-python-inicial.ipynb) > Enter.
Ahora es el momento de conectarlo:
Arriba a la derecha pulsa Conectar.
Espera a que indique Conectado (te asigna una máquina en la nube).
Si alguna vez se queda en “Conectando…”, prueba Entorno de ejecución ▸ Restablecer el entorno de ejecución y vuelve a conectar.
Ve a Entorno de ejecución ▸ Cambiar tipo de entorno…
Comprobación del entorno que sea Python:
- Tipo de ejecución: Python 3
- Acelerador de hardware: Ninguno (para este tutorial no hace falta GPU).
Guarda con Aceptar.

En la primera celda de código, pega:
print("Hola, mundo")
Pulsa Shift+Enter o el botón ▶ debajo verás un Hola, mundo.

Bien, tienes ya tu primera línea de código que está funcionando en Python.
Ejemplo 1: Hola, mundo + entrada de usuario
Verás cómo imprimir mensajes en pantalla con print() y leer datos del usuario con input(). Es tu primer contacto con la E/S (entrada/salida) y con las f-strings para formatear texto.
print()sirve para mostrar texto en pantalla. El texto va entre comillas:"así".input()detiene el programa y espera a que el usuario escriba algo; siempre devuelve texto (tipostr).- f-strings: son cadenas formateadas. Se escriben anteponiendo una
fal abrir las comillas:f"Hola {nombre}".- Las llaves
{}permiten insertar variables o expresiones dentro del texto:f"{2+2}"produce"4".
- Las llaves
- Si pides un número con
input(), te llegará como texto. Para hacer cuentas tendrás que convertirlo:int("8")→8,float("8.5")→8.5.
Copia este código, es más fácil si lo pruebas directamente en la consola:
# Tu primer programa
print("Hola, mundo")
# Versión interactiva
nombre = input("¿Cómo te llamas? ")
print(f"¡Encantado, {nombre}! Bienvenido/a a Python.")

Ejemplo 2 — Operaciones matemáticas básicas
Practicarás los operadores aritméticos: +, -, *, /, //, %, **, y cómo guardar resultados en variables. Aprenderás a mostrar resultados de forma clara con f-strings.
La idea de este ejemplo es tener una calculadora básica creada en Python.
Lo que aprenderás en este ejemplo:
- Operadores aritméticos:
- Suma
+, resta-, multiplicación*, división real/(da decimales), división entera//(sin decimales), módulo%(resto), potencia**.
- Suma
- Variables: son “cajitas” con un nombre donde guardas valores:
resultado = 2 + 2. - Tipos numéricos:
int(enteros:5) yfloat(decimales:5.0).
- Prioridad de operaciones: primero potencias, luego multiplicación/división, luego suma/resta. Usa paréntesis para controlar el orden:
(a + b) * c.
Copia el código de nuevo en una nueva celda:
print("=== Calculadora simple ===")
print("Operaciones disponibles: + - * / // % **")
op = input("Elige operación: ").strip()
x = float(input("Primer número: "))
y = float(input("Segundo número: "))
if op == "+":
res = x + y
elif op == "-":
res = x - y
elif op == "*":
res = x * y
elif op == "/":
if y == 0:
print("No se puede dividir entre 0.")
res = None
else:
res = x / y
elif op == "//":
if y == 0:
print("No se puede dividir entre 0.")
res = None
else:
res = x // y
elif op == "%":
if y == 0:
print("No se puede dividir entre 0.")
res = None
else:
res = x % y
elif op == "**":
res = x ** y
else:
print("Operación no reconocida.")
res = None
if res is not None:
print("Resultado:", res)

Ejemplo 3: Juego de adivinanza con Python
El concepto de este ejemplo es que aprendas a usar los bucles while y las comparaciones. Para ello, vamos a crear en la siguiente celda un juego para adivinar el número secreto.
Piensa que en lugar de un número, puedes cambiar el concepto para que se adivine un color, un animal o cualquier cosa que se te ocurra!
Copia este código en una nueva celda de tu Google Colab:
numero_secreto = 7
intento = 0
while intento != numero_secreto:
intento = int(input("Adivina el número (1-10): "))
if intento < numero_secreto:
print("Demasiado bajo...")
elif intento > numero_secreto:
print("Demasiado alto...")
else:
print("¡Correcto!")
Debería mostrarse en la consola algo como esto:

Ejemplo 4: Contador de palabras con Python
Con este ejemplo aprenderás el concepto de cadenas y funciones con Python.
En este ejercicio vas a crear un pequeño contador de palabras. La idea es que el programa le pida al usuario que escriba una frase y, de forma automática, calcule cuántas palabras tiene.
Este ejemplo es muy útil porque combina varias de las herramientas más importantes de Python:
- Entrada de datos con
input()→ para que el usuario escriba una frase. - Manipulación de cadenas de texto → vamos a usar el método
.split()para dividir la frase en palabras. - Listas en Python → al separar la frase, cada palabra quedará guardada en una lista.
- La función
len()→ nos servirá para contar cuántos elementos (palabras) tiene esa lista.
De esta manera, aprenderás cómo trabajar con strings (texto), cómo transformarlos en listas y cómo obtener información práctica de ellos.
El resultado será un programa sencillo pero potente: escribes una frase cualquiera y Python te dirá en segundos cuántas palabras contiene.
Copia este código en una nueva celda:
texto = input("Escribe una frase: ")
palabras = texto.split()
print("Tu frase tiene", len(palabras), "palabras.")

Ejemplo 4: Generador de contraseñas seguras
Con este ejemplo aprenderás el concepto de cadenas, funciones y generación aleatoria en Python.
En este ejercicio vas a crear un generador de contraseñas seguras. La idea es que el programa te pida la longitud de la contraseña y, automáticamente, construya una combinación aleatoria de letras, números y símbolos.
Este ejemplo es muy útil porque combina varias de las herramientas más importantes de Python:
- Entrada de datos con
input()→ para que el usuario indique la longitud de la contraseña. - Librería
string→ contiene caracteres ya preparados como letras y dígitos. - Librería
random→ permite elegir elementos aleatorios de una lista o cadena. - Cadenas en Python → vas a ir sumando caracteres hasta formar una contraseña completa.
De esta manera, aprenderás cómo trabajar con strings, librerías estándar y funciones aleatorias, aplicándolo a un caso muy práctico de la vida real: crear contraseñas seguras.
El resultado será un programa sencillo pero muy útil: escribes cuántos caracteres quieres y Python te dará una contraseña diferente cada vez que lo ejecutes.
Copia este código en una nueva celda:
import random
import string
# Pedir la longitud de la contraseña al usuario
longitud = int(input("¿De cuántos caracteres quieres tu contraseña? "))
# Conjunto de caracteres posibles: letras, dígitos y símbolos
caracteres = string.ascii_letters + string.digits + string.punctuation
# Generar la contraseña seleccionando caracteres aleatorios
contraseña = "".join(random.choice(caracteres) for i in range(longitud))
print("Tu contraseña segura es:", contraseña)
Cada vez que lo ejecutes, obtendrás un resultado diferente.
Ejemplo 5: calculadora multidivisa
Con este ejemplo aprenderás a hacer peticiones HTTP, trabajar con JSON y manipular cadenas y números en Python.
En este ejercicio vas a crear un conversor de divisas que consulta una API pública para obtener el tipo de cambio en tiempo real y convierte un importe de una moneda a otra (por ejemplo, de EUR a USD).
Este ejemplo es muy útil porque combina varias de las herramientas más importantes de Python:
- Entrada de datos con
input()→ para que tú indiques cantidad y monedas. - Librería
requests→ para hacer la petición a la API. - JSON en Python → para leer la respuesta con el tipo de cambio.
- Conversión numérica y formateo → para mostrar un resultado claro.
De esta manera, aprenderás cómo consumir servicios web desde Python y cómo transformar la respuesta en un valor práctico (la cantidad convertida).
El resultado será un programa sencillo pero poderoso: escribes una cantidad y dos códigos de moneda (por ejemplo, “EUR” y “USD”) y Python te muestra el importe convertido, el tipo de cambio utilizado y la fecha de la cotización.
Copia este código en una nueva celda:
# Conversor de divisas con Frankfurter.app (sin API key)
# Requisitos: pip install requests (en Colab ya viene)
import requests
def convertir_divisa(cantidad, desde, hacia):
desde = desde.strip().upper()
hacia = hacia.strip().upper()
# Si son la misma moneda, evitamos la llamada
if desde == hacia:
return {
"ok": True,
"desde": desde,
"hacia": hacia,
"cantidad": cantidad,
"convertido": float(cantidad),
"tasa": 1.0,
"fecha": None,
}
url = "https://api.frankfurter.app/latest"
params = {"from": desde, "to": hacia}
try:
r = requests.get(url, params=params, timeout=10)
r.raise_for_status()
data = r.json()
# data["rates"] tiene el tipo de cambio "hacia"
rates = data.get("rates", {})
if hacia in rates:
tasa = float(rates[hacia])
convertido = float(cantidad) * tasa
fecha = data.get("date")
return {
"ok": True,
"desde": desde,
"hacia": hacia,
"cantidad": float(cantidad),
"convertido": convertido,
"tasa": tasa,
"fecha": fecha,
}
else:
return {"ok": False, "error": "No se encontró la tasa para esas monedas."}
except requests.exceptions.RequestException as e:
return {"ok": False, "error": f"Error de red: {e}"}
# --- Interacción con el usuario ---
try:
cantidad = float(input("Cantidad a convertir: ").replace(",", "."))
moneda_desde = input("Moneda de origen (ej. EUR): ")
moneda_hacia = input("Moneda de destino (ej. USD): ")
resultado = convertir_divisa(cantidad, moneda_desde, moneda_hacia)
if resultado["ok"]:
print(f"\n{resultado['cantidad']} {resultado['desde']} = {resultado['convertido']:.4f} {resultado['hacia']}")
print(f"Tasa usada: 1 {resultado['desde']} = {resultado['tasa']:.6f} {resultado['hacia']}")
if resultado["fecha"]:
print(f"Fecha de cotización: {resultado['fecha']}")
else:
print("\nHa ocurrido un problema:", resultado["error"])
except ValueError:
print("\nPor favor, escribe una cantidad válida (número).")
Ahora escribe la cantidad de dinero, abajo selecciona la moneda y la moneda de cambio, te deberá dar un resultado actualizado en cuanto pulses Enter.
Ejemplo 6: Python para extraer titulares de periódicos (tu propio Google News)
Con este ejemplo aprenderás el concepto de web scraping, es decir, cómo extraer información automáticamente de una página web con Python.
En este ejercicio vas a crear un pequeño programa que entra en la portada de un periódico digital (en este caso, El País) y extrae los últimos titulares en segundos.
Este ejemplo es muy útil porque combina varias de las herramientas más potentes de Python:
- Librería
requests→ para descargar el contenido de una página web. - Librería
BeautifulSoup(del paquetebs4) → para analizar el HTML y localizar elementos. - Listas y bucles → para recorrer los titulares encontrados y mostrarlos en pantalla.
De esta manera, aprenderás cómo Python puede “leer” Internet, extraer datos útiles y presentarlos en un formato claro. Este tipo de técnica se usa en agregadores de noticias, comparadores de precios o análisis de tendencias.
El resultado será un programa sorprendente: cada vez que lo ejecutes, Python te mostrará en segundos los titulares más recientes de un periódico online.
Copia este código en una nueva celda:
# Necesitas instalar BeautifulSoup si no lo tienes:
# pip install requests beautifulsoup4
import requests
from bs4 import BeautifulSoup
# URL de la portada de El País
url = "https://elpais.com/"
# Descargar el contenido HTML de la página
r = requests.get(url, timeout=10)
soup = BeautifulSoup(r.text, "html.parser")
# Buscar los titulares (en El País suelen estar en etiquetas <h2>)
titulares = [h.get_text(strip=True) for h in soup.find_all("h2")]
# Mostrar los 5 primeros titulares encontrados
print("📰 Últimos titulares de El País:\n")
for i, t in enumerate(titulares[:5], 1):
print(f"{i}. {t}")
Si quieres tener un listado de periódicos para que te digan todos los titulares, prueba este código y cambia las URL por los periódicos que quieras.
Este código siguiente lo que hace es que Python recorrerá la lista periódicos y extraerá titulares de cada uno.
Si un periódico cambia su estructura (por ejemplo, usa <h3> en lugar de <h2>), puedes ajustarlo dentro del if.
Copia este ejemplo para ejecutarlo:
import requests
from bs4 import BeautifulSoup
# Lista de periódicos a scrapear
periodicos = {
"El País": "https://elpais.com/",
"BBC Mundo": "https://www.bbc.com/mundo",
"CNN Español": "https://cnnespanol.cnn.com/"
}
def extraer_titulares(nombre, url, n=5):
try:
r = requests.get(url, timeout=10)
r.raise_for_status()
soup = BeautifulSoup(r.text, "html.parser")
# Dependiendo de la web, los titulares están en distintas etiquetas
if "elpais" in url:
h_tags = soup.find_all("h2")
elif "bbc" in url:
h_tags = soup.find_all("h3")
elif "cnn" in url:
h_tags = soup.find_all("h2")
else:
h_tags = soup.find_all("h2")
titulares = [h.get_text(strip=True) for h in h_tags if h.get_text(strip=True)]
print(f"\n📰 Titulares de {nombre}:\n")
for i, t in enumerate(titulares[:n], 1):
print(f"{i}. {t}")
except Exception as e:
print(f"\n⚠️ No se pudieron obtener titulares de {nombre}: {e}")
# Ejecutar scraping para cada periódico en la lista
for nombre, url in periodicos.items():
extraer_titulares(nombre, url)
Prueba este último ejemplo porque es la respuesta de la auténtica magia de Python!
Si crees que este tutorial puede ayudar a otros no dudes en compartirlo, además, suscríbete de forma gratuita a la newsletter donde daremos cada semana nuevos consejos o sigue el canal de Telegram o Whatsapp 🔔 para ser el primero en conocer las actualizaciones, nuevas guías y contenido exclusivo.
Mañana se completará con los siguientes ejemplos, lo notificaremos en todas las redes de AprenderGratis.es
También si necesitas cursos de más nivel, hay cientos de cursos de Python gratuitos en la sección que hemos ido recopilando.
Hola
Gracias por compartir el conocimiento, en este curso para principiantes.
Lo are, lo explicas muy bien , me estoy enterando. Lo de hacer un video es buena idea.
Gracias
Un saludo
Ya empecé con el tutorial de Pithon.
En lo referido a Excel, me gusta mucho tu idea de hacer un video mostrando, CON EJEMPLOS, elaboración de tablas dinámicas y dashboards.
Gracias