Python

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.

Aprende Python GRATIS y certifícate

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.

Aprende Python GRATIS online

Tutoriales de Python

Aprende Python con tutoriales de programación en Python.

Introducción A Python

Python

Introducción

Instalación Y Creación De Proyecto

Python

Introducción

Tema 2: Tipos De Datos, Variables Y Operadores

Python

Introducción

Instalación De Python

Python

Introducción

Tipos De Datos

Python

Sintaxis

Variables

Python

Sintaxis

Operadores

Python

Sintaxis

Estructuras De Control

Python

Sintaxis

Funciones

Python

Sintaxis

Estructuras Control Iterativo

Python

Sintaxis

Estructuras Control Condicional

Python

Sintaxis

Testing Con Pytest

Python

Sintaxis

Listas

Python

Estructuras De Datos

Tuplas

Python

Estructuras De Datos

Diccionarios

Python

Estructuras De Datos

Conjuntos

Python

Estructuras De Datos

Comprehensions

Python

Estructuras De Datos

Clases Y Objetos

Python

Programación Orientada A Objetos

Excepciones

Python

Programación Orientada A Objetos

Encapsulación

Python

Programación Orientada A Objetos

Herencia

Python

Programación Orientada A Objetos

Polimorfismo

Python

Programación Orientada A Objetos

Mixins Y Herencia Múltiple

Python

Programación Orientada A Objetos

Métodos Especiales (Dunder Methods)

Python

Programación Orientada A Objetos

Composición De Clases

Python

Programación Orientada A Objetos

Funciones Lambda

Python

Programación Funcional

Aplicación Parcial

Python

Programación Funcional

Entrada Y Salida, Manejo De Archivos

Python

Programación Funcional

Decoradores

Python

Programación Funcional

Generadores

Python

Programación Funcional

Paradigma Funcional

Python

Programación Funcional

Composición De Funciones

Python

Programación Funcional

Funciones Orden Superior Map Y Filter

Python

Programación Funcional

Funciones Auxiliares

Python

Programación Funcional

Reducción Y Acumulación

Python

Programación Funcional

Archivos Comprimidos

Python

Entrada Y Salida Io

Entrada Y Salida Avanzada

Python

Entrada Y Salida Io

Archivos Temporales

Python

Entrada Y Salida Io

Contexto With

Python

Entrada Y Salida Io

Módulo Csv

Python

Biblioteca Estándar

Módulo Json

Python

Biblioteca Estándar

Módulo Datetime

Python

Biblioteca Estándar

Módulo Math

Python

Biblioteca Estándar

Módulo Os

Python

Biblioteca Estándar

Módulo Re

Python

Biblioteca Estándar

Módulo Random

Python

Biblioteca Estándar

Módulo Time

Python

Biblioteca Estándar

Módulo Collections

Python

Biblioteca Estándar

Módulo Sys

Python

Biblioteca Estándar

Módulo Statistics

Python

Biblioteca Estándar

Módulo Pickle

Python

Biblioteca Estándar

Módulo Pathlib

Python

Biblioteca Estándar

Importar Módulos Y Paquetes

Python

Paquetes Y Módulos

Crear Módulos Y Paquetes

Python

Paquetes Y Módulos

Entornos Virtuales (Virtualenv, Venv)

Python

Entorno Y Dependencias

Gestión De Dependencias (Pip, Requirements.txt)

Python

Entorno Y Dependencias

Python-dotenv Y Variables De Entorno

Python

Entorno Y Dependencias

Acceso A Datos Con Mysql, Pymongo Y Pandas

Python

Acceso A Bases De Datos

Acceso A Mongodb Con Pymongo

Python

Acceso A Bases De Datos

Acceso A Mysql Con Mysql Connector

Python

Acceso A Bases De Datos

Novedades Python 3.13

Python

Características Modernas

Operador Walrus

Python

Características Modernas

Pattern Matching

Python

Características Modernas

Instalación Beautiful Soup

Python

Web Scraping

Sintaxis General De Beautiful Soup

Python

Web Scraping

Tipos De Selectores

Python

Web Scraping

Web Scraping De Html

Python

Web Scraping

Web Scraping Para Ciencia De Datos

Python

Web Scraping

Autenticación Y Acceso A Recursos Protegidos

Python

Web Scraping

Combinación De Selenium Con Beautiful Soup

Python

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

Python
Puzzle

Reto herencia

Python
Código

Excepciones

Python
Test

Introducción a Python

Python
Test

Reto variables

Python
Código

Funciones Python

Python
Puzzle

Reto funciones

Python
Código

Módulo datetime

Python
Test

Reto acumulación

Python
Código

Reto estructuras condicionales

Python
Código

Polimorfismo

Python
Test

Módulo os

Python
Test

Reto métodos dunder

Python
Código

Diccionarios

Python
Puzzle

Reto clases y objetos

Python
Código

Reto operadores

Python
Código

Operadores

Python
Test

Estructuras de control

Python
Puzzle

Funciones lambda

Python
Test

Reto diccionarios

Python
Código

Reto función lambda

Python
Código

Encapsulación

Python
Puzzle

Reto coleciones

Python
Proyecto

Reto funciones auxiliares

Python
Código

Crear módulos y paquetes

Python
Puzzle

Módulo datetime

Python
Puzzle

Excepciones

Python
Puzzle

Operadores

Python
Puzzle

Diccionarios

Python
Test

Reto map, filter

Python
Código

Reto tuplas

Python
Código

Proyecto gestor de tareas CRUD

Python
Proyecto

Tuplas

Python
Puzzle

Variables

Python
Puzzle

Tipos de datos

Python
Puzzle

Conjuntos

Python
Test

Reto mixins

Python
Código

Módulo csv

Python
Test

Módulo json

Python
Test

Herencia

Python
Test

Análisis de datos de ventas con Pandas

Python
Proyecto

Reto fechas y tiempo

Python
Proyecto

Reto estructuras de iteración

Python
Código

Funciones

Python
Test

Reto comprehensions

Python
Código

Variables

Python
Test

Reto serialización

Python
Proyecto

Módulo csv

Python
Puzzle

Reto polimorfismo

Python
Código

Polimorfismo

Python
Puzzle

Clases y objetos

Python
Código

Reto encapsulación

Python
Código

Estructuras de control

Python
Test

Importar módulos y paquetes

Python
Test

Módulo math

Python
Test

Funciones lambda

Python
Puzzle

Reto excepciones

Python
Código

Listas

Python
Puzzle

Reto archivos

Python
Proyecto

Encapsulación

Python
Test

Reto conjuntos

Python
Código

Clases y objetos

Python
Test

Instalación de Python y creación de proyecto

Python
Test

Reto listas

Python
Código

Tipos de datos

Python
Test

Crear módulos y paquetes

Python
Test

Tuplas

Python
Test

Herencia

Python
Puzzle

Reto acceso a sistema

Python
Proyecto

Proyecto sintaxis calculadora

Python
Proyecto

Importar módulos y paquetes

Python
Puzzle

Clases y objetos

Python
Puzzle

Módulo os

Python
Puzzle

Listas

Python
Test

Conjuntos

Python
Puzzle

Reto tipos de datos

Python
Código

Reto matemáticas

Python
Proyecto

Módulo json

Python
Puzzle

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

Ver todos los módulos de Python

Otras tecnologías

C
C

C

Backend

Lenguaje de propósito general, eficiente y de bajo nivel.

TypeScript
TypeScript

TypeScript

Full Stack

Superconjunto de JavaScript con tipado estático.

Apache Spark
PySpark

PySpark

Big Data

Motor unificado de análisis de datos distribuido para grandes volúmenes.

Go
Go

Go

Backend

Lenguaje de programación eficiente y concurrente creado por Google.

Django
Django

Django

Backend

Framework web Python para desarrollo rápido y seguro.

Spring Boot
SpringBoot

SpringBoot

Backend

Framework para desarrollo rápido de aplicaciones Java.

Laravel
Laravel

Laravel

Backend

Framework de PHP para desarrollo web backend.

Node.js
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

OpenCV

Ciencia de Datos e IA

Biblioteca de Python para Computer Vision en imágenes y vídeos.

Flask
Flask

Flask

Backend

Microframework web para Python, simple y flexible.

NestJS
Nest

Nest

Backend

Framework Node.js para crear aplicaciones escalables y eficientes.

Selenium
Selenium

Selenium

Testing / QA

Suite de herramientas open-source para automatizar navegadores web y pruebas de software de interfaz de usuario.

React
React

React

Frontend

Librería framework para frontend interfaces de usuario.

Vue.js
Vuejs

Vuejs

Frontend

Framework de JS progresivo para construir interfaces de usuario reactivas y modulares.

Docker
Docker

Docker

DevOps

Plataforma de contenedores para aplicaciones portátiles.

PHP
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

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

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

TensorFlow

Ciencia de Datos e IA

Biblioteca Python para redes neuronales en Deep Learning

Tailwind CSS
TailwindCSS

TailwindCSS

Frontend

Framework de utilidades CSS para diseños rápidos y personalizables.

Git
Git

Git

DevOps

Sistema de control de versiones distribuido.

scikit-learn
ScikitLearn

ScikitLearn

Ciencia de Datos e IA

Biblioteca de aprendizaje automático en Python.

Kotlin
Kotlin

Kotlin

Backend

Lenguaje de programación moderno y seguro para aplicaciones Android.

NumPy
Numpy

Numpy

Ciencia de Datos e IA

Biblioteca Python para computación científica y matrices.

HTML5
HTML

HTML

Frontend

Lenguaje de marcado para estructurar contenido web.

GNU Bash
Bash

Bash

Administración de sistemas

Intérprete de comandos para sistemas Unix y Linux.

Bootstrap
Bootstrap

Bootstrap

Frontend

Framework CSS para diseños web responsive y modernos.

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/
Matplotlib

Matplotlib

Ciencia de Datos e IA

Biblioteca Python para crear gráficos y visualizaciones.

Hibernate
Hibernate

Hibernate

Backend

ORM para Java, simplifica el acceso a bases de datos.

pandas
Pandas

Pandas

Ciencia de Datos e IA

Herramienta Python para análisis y manipulación de datos.

JavaScript
JavaScript

JavaScript

Full Stack

Lenguaje de scripting para desarrollo web interactivo.

Angular
Angular

Angular

Frontend

Framework web de Google para aplicaciones dinámicas.

CSS
CSS

CSS

Frontend

Lenguaje de estilo para diseñar páginas web atractivas.

Acceder a todas las tecnologías