Curso de programación con Python
Python es el lenguaje de programación versátil y fácil de aprender utilizado en ciencia de datos, desarrollo web y más. Aprende a programar con Python.
Python es un lenguaje de programación de alto nivel, interpretado y de propósito general que ha revolucionado el mundo del desarrollo de software desde su creación por Guido van Rossum a finales de los años 80. Su filosofía de diseño enfatiza la legibilidad del código y la simplicidad, permitiendo a los programadores expresar conceptos en menos líneas de código que otros lenguajes como C++ o Java.
Características fundamentales
Python destaca por su sintaxis clara y expresiva, que utiliza la indentación para delimitar bloques de código en lugar de llaves o palabras clave. Esta característica fomenta la escritura de código limpio y consistente, facilitando su mantenimiento y comprensión.
El lenguaje sigue una filosofía resumida en "El Zen de Python", que incluye principios como:
- La legibilidad cuenta
- Simple es mejor que complejo
- Explícito es mejor que implícito
- La practicidad le gana a la pureza
Python es multiparadigma, permitiendo programar siguiendo diferentes estilos:
- Programación imperativa
- Programación orientada a objetos
- Programación funcional
- Programación procedural
Su tipado dinámico permite que las variables cambien de tipo durante la ejecución, lo que aporta flexibilidad al desarrollo. Además, es un lenguaje multiplataforma que funciona en Windows, macOS, Linux y otros sistemas operativos.
Ecosistema y aplicaciones
El ecosistema Python es extremadamente rico y diverso, con miles de bibliotecas y frameworks que extienden sus capacidades a prácticamente cualquier dominio:
- Ciencia de datos: NumPy, Pandas, SciPy
- Aprendizaje automático: TensorFlow, PyTorch, scikit-learn
- Desarrollo web: Django, Flask, FastAPI
- Automatización: Ansible, Fabric
- Análisis de datos: Matplotlib, Seaborn
- Computación científica: SymPy, Biopython
Python se ha convertido en el lenguaje preferido para:
- Análisis y visualización de datos
- Inteligencia artificial y aprendizaje automático
- Desarrollo web backend
- Automatización y scripting
- Desarrollo de aplicaciones de escritorio
- Educación en programación
Fundamentos del lenguaje
El curso comienza con los conceptos básicos de Python, incluyendo su instalación y configuración. Aprenderás a trabajar con diferentes tipos de datos como enteros, flotantes, cadenas y booleanos, y a manipularlos mediante operadores aritméticos, de comparación y lógicos.
# Ejemplos de tipos de datos básicos
entero = 42
flotante = 3.14
texto = "Hola, Python"
booleano = True
Las estructuras de control te permitirán dirigir el flujo de ejecución de tus programas:
# Estructura condicional
edad = 18
if edad >= 18:
print("Eres mayor de edad")
else:
print("Eres menor de edad")
# Estructura iterativa
for i in range(5):
print(f"Iteración {i}")
Las funciones son bloques de código reutilizables que encapsulan operaciones específicas:
def saludar(nombre):
"""Función que saluda a una persona"""
return f"¡Hola, {nombre}!"
mensaje = saludar("Ana")
print(mensaje) # Imprime: ¡Hola, Ana!
El manejo de excepciones te permitirá controlar errores y situaciones inesperadas:
try:
resultado = 10 / 0
except ZeroDivisionError:
print("No se puede dividir por cero")
finally:
print("Operación finalizada")
Estructuras de datos
Python ofrece estructuras de datos versátiles y potentes que facilitan el manejo de colecciones de información:
- Listas: colecciones ordenadas y mutables
- Tuplas: colecciones ordenadas e inmutables
- Diccionarios: colecciones de pares clave-valor
- Conjuntos: colecciones no ordenadas de elementos únicos
# Lista (mutable)
frutas = ["manzana", "banana", "cereza"]
frutas.append("damasco")
# Tupla (inmutable)
coordenadas = (10, 20)
# Diccionario
persona = {
"nombre": "Carlos",
"edad": 30,
"profesión": "ingeniero"
}
# Conjunto
colores = {"rojo", "verde", "azul"}
Las comprehensions proporcionan una sintaxis concisa para crear estas estructuras:
# List comprehension
cuadrados = [x**2 for x in range(10)]
# Dict comprehension
cuadrados_dict = {x: x**2 for x in range(5)}
# Set comprehension
vocales_set = {letra for letra in "murcielago"}
Programación orientada a objetos
Python implementa la programación orientada a objetos de forma elegante y accesible. Aprenderás a crear clases y objetos, aplicar encapsulación para proteger datos, utilizar métodos especiales (dunder methods) para personalizar el comportamiento de tus objetos, y aprovechar la herencia y el polimorfismo para crear jerarquías de clases eficientes.
class Persona:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
def saludar(self):
return f"Hola, soy {self.nombre} y tengo {self.edad} años"
def __str__(self):
return f"Persona: {self.nombre}"
# Herencia
class Estudiante(Persona):
def __init__(self, nombre, edad, carrera):
super().__init__(nombre, edad)
self.carrera = carrera
def estudiar(self):
return f"{self.nombre} está estudiando {self.carrera}"
La composición de clases y los mixins te permitirán crear diseños más flexibles y reutilizables:
class LoggerMixin:
def log(self, mensaje):
print(f"LOG: {mensaje}")
class BaseDatos:
def __init__(self, conexion):
self.conexion = conexion
class ServicioDatos(BaseDatos, LoggerMixin):
def obtener_datos(self):
self.log("Obteniendo datos...")
return ["dato1", "dato2"]
Programación funcional
Python soporta el paradigma funcional con características como funciones lambda, funciones de orden superior y generadores:
# Función lambda
cuadrado = lambda x: x**2
# Map y filter
numeros = [1, 2, 3, 4, 5]
cuadrados = list(map(lambda x: x**2, numeros))
pares = list(filter(lambda x: x % 2 == 0, numeros))
# Reducción
from functools import reduce
suma = reduce(lambda x, y: x + y, numeros)
# Generador
def contador(max):
n = 0
while n < max:
yield n
n += 1
Los decoradores permiten modificar el comportamiento de funciones y métodos:
def registrar(funcion):
def wrapper(*args, **kwargs):
print(f"Llamando a {funcion.__name__}")
resultado = funcion(*args, **kwargs)
print(f"Llamada completada")
return resultado
return wrapper
@registrar
def suma(a, b):
return a + b
Entrada/salida y manejo de archivos
Python facilita las operaciones de entrada y salida, especialmente el manejo de archivos:
# Usando el contexto with para manejo seguro de recursos
with open("datos.txt", "w") as archivo:
archivo.write("Hola, mundo!")
with open("datos.txt", "r") as archivo:
contenido = archivo.read()
print(contenido)
Aprenderás a trabajar con archivos temporales y archivos comprimidos:
import tempfile
import zipfile
# Archivo temporal
with tempfile.NamedTemporaryFile(delete=False) as temp:
temp.write(b"Datos temporales")
temp_name = temp.name
# Archivo comprimido
with zipfile.ZipFile("archivo.zip", "w") as zip_file:
zip_file.write("datos.txt")
Biblioteca estándar
La biblioteca estándar de Python es extremadamente rica, ofreciendo módulos para diversas tareas:
- sys y os: interacción con el sistema operativo
- pathlib: manejo de rutas de archivos
- collections: estructuras de datos especializadas
- math, random y statistics: operaciones matemáticas y estadísticas
- datetime y time: manejo de fechas y tiempos
- json, pickle y csv: serialización y deserialización de datos
- re: expresiones regulares
import os
import json
from datetime import datetime
from collections import Counter
# Operaciones con el sistema de archivos
archivos = os.listdir(".")
# Serialización JSON
datos = {"nombre": "Python", "año": 1991}
json_str = json.dumps(datos)
# Fecha y hora actual
ahora = datetime.now()
# Conteo de elementos
palabras = ["python", "java", "python", "javascript"]
conteo = Counter(palabras)
Módulos, paquetes y entornos
Aprenderás a organizar tu código en módulos y paquetes, y a gestionar entornos virtuales y dependencias:
# Importación de módulos
import math
from datetime import datetime
# Creación de entornos virtuales
# (en terminal)
# python -m venv mi_entorno
# source mi_entorno/bin/activate # Linux/Mac
# mi_entorno\Scripts\activate # Windows
# Gestión de dependencias
# pip install requests
# pip freeze > requirements.txt
Acceso a bases de datos
Python permite conectarse a diferentes sistemas de bases de datos:
# MySQL
import mysql.connector
conexion = mysql.connector.connect(
host="localhost",
user="usuario",
password="contraseña",
database="mi_db"
)
cursor = conexion.cursor()
cursor.execute("SELECT * FROM usuarios")
resultados = cursor.fetchall()
# MongoDB
from pymongo import MongoClient
cliente = MongoClient("mongodb://localhost:27017/")
db = cliente["mi_db"]
coleccion = db["usuarios"]
resultado = coleccion.find_one({"nombre": "Ana"})
Testing y desarrollo moderno
El testing es fundamental en el desarrollo profesional:
# Test con pytest
def suma(a, b):
return a + b
def test_suma():
assert suma(2, 3) == 5
assert suma(-1, 1) == 0
Python continúa evolucionando con características modernas como el operador walrus y el pattern matching:
# Operador walrus (:=)
if (n := len(lista)) > 10:
print(f"Lista larga con {n} elementos")
# Pattern matching (Python 3.10+)
match valor:
case 0:
print("Cero")
case 1:
print("Uno")
case _:
print("Otro número")
Proyectos prácticos
El curso incluye proyectos prácticos que te permitirán aplicar lo aprendido:
- Gestor de tareas CRUD
- Calculadora con sintaxis avanzada
- Retos de programación tipo puzzle
Estos proyectos te ayudarán a consolidar tus conocimientos y desarrollar habilidades de resolución de problemas.
Python es un lenguaje que combina simplicidad y potencia, lo que lo convierte en una excelente elección tanto para principiantes como para desarrolladores experimentados. Su versatilidad y amplio ecosistema lo han posicionado como uno de los lenguajes más populares y demandados en la industria tecnológica actual.
Tutoriales de Python
Aprende Python con tutoriales de programación en Python.
Introducción A Python
Introducción
Instalación Y Creación De Proyecto
Introducción
Tema 2: Tipos De Datos, Variables Y Operadores
Introducción
Instalación De Python
Introducción
Tipos De Datos
Sintaxis
Variables
Sintaxis
Operadores
Sintaxis
Estructuras De Control
Sintaxis
Funciones
Sintaxis
Estructuras Control Iterativo
Sintaxis
Estructuras Control Condicional
Sintaxis
Testing Con Pytest
Sintaxis
Listas
Estructuras De Datos
Tuplas
Estructuras De Datos
Diccionarios
Estructuras De Datos
Conjuntos
Estructuras De Datos
Comprehensions
Estructuras De Datos
Clases Y Objetos
Programación Orientada A Objetos
Excepciones
Programación Orientada A Objetos
Encapsulación
Programación Orientada A Objetos
Herencia
Programación Orientada A Objetos
Polimorfismo
Programación Orientada A Objetos
Mixins Y Herencia Múltiple
Programación Orientada A Objetos
Métodos Especiales (Dunder Methods)
Programación Orientada A Objetos
Composición De Clases
Programación Orientada A Objetos
Funciones Lambda
Programación Funcional
Aplicación Parcial
Programación Funcional
Entrada Y Salida, Manejo De Archivos
Programación Funcional
Decoradores
Programación Funcional
Generadores
Programación Funcional
Paradigma Funcional
Programación Funcional
Composición De Funciones
Programación Funcional
Funciones Orden Superior Map Y Filter
Programación Funcional
Funciones Auxiliares
Programación Funcional
Reducción Y Acumulación
Programación Funcional
Archivos Comprimidos
Entrada Y Salida Io
Entrada Y Salida Avanzada
Entrada Y Salida Io
Archivos Temporales
Entrada Y Salida Io
Contexto With
Entrada Y Salida Io
Módulo Csv
Biblioteca Estándar
Módulo Json
Biblioteca Estándar
Módulo Datetime
Biblioteca Estándar
Módulo Math
Biblioteca Estándar
Módulo Os
Biblioteca Estándar
Módulo Re
Biblioteca Estándar
Módulo Random
Biblioteca Estándar
Módulo Time
Biblioteca Estándar
Módulo Collections
Biblioteca Estándar
Módulo Sys
Biblioteca Estándar
Módulo Statistics
Biblioteca Estándar
Módulo Pickle
Biblioteca Estándar
Módulo Pathlib
Biblioteca Estándar
Importar Módulos Y Paquetes
Paquetes Y Módulos
Crear Módulos Y Paquetes
Paquetes Y Módulos
Entornos Virtuales (Virtualenv, Venv)
Entorno Y Dependencias
Gestión De Dependencias (Pip, Requirements.txt)
Entorno Y Dependencias
Python-dotenv Y Variables De Entorno
Entorno Y Dependencias
Acceso A Datos Con Mysql, Pymongo Y Pandas
Acceso A Bases De Datos
Acceso A Mongodb Con Pymongo
Acceso A Bases De Datos
Acceso A Mysql Con Mysql Connector
Acceso A Bases De Datos
Novedades Python 3.13
Características Modernas
Operador Walrus
Características Modernas
Pattern Matching
Características Modernas
Instalación Beautiful Soup
Web Scraping
Sintaxis General De Beautiful Soup
Web Scraping
Tipos De Selectores
Web Scraping
Web Scraping De Html
Web Scraping
Web Scraping Para Ciencia De Datos
Web Scraping
Autenticación Y Acceso A Recursos Protegidos
Web Scraping
Combinación De Selenium Con Beautiful Soup
Web Scraping
Ejercicios de programación de Python
Evalúa tus conocimientos en Python con ejercicios de programación Python de tipo Test, Puzzle, Código y Proyecto con VSCode.
Módulo math
Reto herencia
Excepciones
Introducción a Python
Reto variables
Funciones Python
Reto funciones
Módulo datetime
Reto acumulación
Reto estructuras condicionales
Polimorfismo
Módulo os
Reto métodos dunder
Diccionarios
Reto clases y objetos
Reto operadores
Operadores
Estructuras de control
Funciones lambda
Reto diccionarios
Reto función lambda
Encapsulación
Reto coleciones
Reto funciones auxiliares
Crear módulos y paquetes
Módulo datetime
Excepciones
Operadores
Diccionarios
Reto map, filter
Reto tuplas
Proyecto gestor de tareas CRUD
Tuplas
Variables
Tipos de datos
Conjuntos
Reto mixins
Módulo csv
Módulo json
Herencia
Análisis de datos de ventas con Pandas
Reto fechas y tiempo
Reto estructuras de iteración
Funciones
Reto comprehensions
Variables
Reto serialización
Módulo csv
Reto polimorfismo
Polimorfismo
Clases y objetos
Reto encapsulación
Estructuras de control
Importar módulos y paquetes
Módulo math
Funciones lambda
Reto excepciones
Listas
Reto archivos
Encapsulación
Reto conjuntos
Clases y objetos
Instalación de Python y creación de proyecto
Reto listas
Tipos de datos
Crear módulos y paquetes
Tuplas
Herencia
Reto acceso a sistema
Proyecto sintaxis calculadora
Importar módulos y paquetes
Clases y objetos
Módulo os
Listas
Conjuntos
Reto tipos de datos
Reto matemáticas
Módulo json
Tipo de tecnología
Lenguaje
Categoría laboral
Backend
Año de lanzamiento
1991
Developers
Guido van Rossum
Todos los módulos del curso de Python
Python
Introducción
Python
Sintaxis
Python
Estructuras de datos
Python
Programación Orientada a Objetos
Python
Programación Funcional
Python
Entrada y salida IO
Python
Biblioteca estándar
Python
Paquetes y módulos
Python
Entorno y dependencias
Python
Acceso a bases de datos
Python
Testing
Python
Características modernas
Python
Sistema de tipos
Python
Web Scraping
Otras tecnologías
C
C
Backend
Lenguaje de propósito general, eficiente y de bajo nivel.
TypeScript
TypeScript
Full Stack
Superconjunto de JavaScript con tipado estático.
PySpark
PySpark
Big Data
Motor unificado de análisis de datos distribuido para grandes volúmenes.
Go
Go
Backend
Lenguaje de programación eficiente y concurrente creado por Google.
Django
Django
Backend
Framework web Python para desarrollo rápido y seguro.
SpringBoot
SpringBoot
Backend
Framework para desarrollo rápido de aplicaciones Java.
Laravel
Laravel
Backend
Framework de PHP para desarrollo web backend.
Node
Node
Backend
Node.js es un entorno de ejecución de JavaScript basado en el motor V8 de Google.
Java
Java
Backend
Lenguaje de programación versátil y multiplataforma.
OpenCV
OpenCV
Ciencia de Datos e IA
Biblioteca de Python para Computer Vision en imágenes y vídeos.
Flask
Flask
Backend
Microframework web para Python, simple y flexible.
Nest
Nest
Backend
Framework Node.js para crear aplicaciones escalables y eficientes.
Selenium
Selenium
Testing / QA
Suite de herramientas open-source para automatizar navegadores web y pruebas de software de interfaz de usuario.
React
React
Frontend
Librería framework para frontend interfaces de usuario.
Vuejs
Vuejs
Frontend
Framework de JS progresivo para construir interfaces de usuario reactivas y modulares.
Docker
Docker
DevOps
Plataforma de contenedores para aplicaciones portátiles.
PHP
PHP
Backend
Lenguaje de programación para desarrollo web del lado del servidor, el motor del ecosistema Wordpress.
CSharp
CSharp
Backend
Lenguaje C# de Microsoft para desarrollo en el ecosistema .NET para todo tipo de aplicaciones.
Streamlit
Streamlit
Ciencia de Datos e IA
Biblioteca Python para prototipado web UI rápido en ciencia de datos.
Seaborn
Seaborn
Ciencia de Datos e IA
Biblioteca de visualización de datos para Python.
SQL
SQL
Bases de datos
Lenguaje para gestionar bases de datos relacionales.
FastAPI
FastAPI
Backend
Framework web moderno y rápido para Python.
Fundamentos
Fundamentos
Full Stack
Fundamentos y bases de la programación de software moderna.
TensorFlow
TensorFlow
Ciencia de Datos e IA
Biblioteca Python para redes neuronales en Deep Learning
TailwindCSS
TailwindCSS
Frontend
Framework de utilidades CSS para diseños rápidos y personalizables.
Git
Git
DevOps
Sistema de control de versiones distribuido.
ScikitLearn
ScikitLearn
Ciencia de Datos e IA
Biblioteca de aprendizaje automático en Python.
Kotlin
Kotlin
Backend
Lenguaje de programación moderno y seguro para aplicaciones Android.
Numpy
Numpy
Ciencia de Datos e IA
Biblioteca Python para computación científica y matrices.
HTML
HTML
Frontend
Lenguaje de marcado para estructurar contenido web.
Bash
Bash
Administración de sistemas
Intérprete de comandos para sistemas Unix y Linux.
Bootstrap
Bootstrap
Frontend
Framework CSS para diseños web responsive y modernos.
Matplotlib
Matplotlib
Ciencia de Datos e IA
Biblioteca Python para crear gráficos y visualizaciones.
Hibernate
Hibernate
Backend
ORM para Java, simplifica el acceso a bases de datos.
Pandas
Pandas
Ciencia de Datos e IA
Herramienta Python para análisis y manipulación de datos.
JavaScript
JavaScript
Full Stack
Lenguaje de scripting para desarrollo web interactivo.
Angular
Angular
Frontend
Framework web de Google para aplicaciones dinámicas.
CSS
CSS
Frontend
Lenguaje de estilo para diseñar páginas web atractivas.