Programa Detallado
- Autor:
Juan Fiol
- Version:
Revision: 2025
- Copyright:
Libre
Clase 1: Introducción al lenguaje
Cómo empezar: Instalación y uso
Instalación
Edición de código
Documentación y ayudas
Uso de Python: Interactivo o no
Notebooks de Jupyter o Jupyter-Lab
Instalando Python interactivo
Comandos de Jupyter (o IPython)
Comandos de Navegación
Algunos de los comandos mágicos
Comandos de Shell
Ambientes
Gestionando ambientes con
conda
Ambientes y Notebooks
Compartiendo ambientes
Conceptos básicos de Python
Características generales del lenguaje
Tipos de variables
Clase 2: Modularización y tipos compuestos
Modularización y encapsulado
Definición básica de funciones
Módulos
Módulo math
Módulo
cmath
Tipos simples: Números
Tipos compuestos
Strings: Secuencias de caracteres
Operaciones
Iteración y Métodos de Strings
Formato de strings
Conversión de tipos
Tipos contenedores
Listas
Tuplas
Rangos
Clase 3: Tipos complejos y control de flujo
Listas
Operaciones sobre listas
Funciones que aplican sobre listas
Control de flujo
if/elif/else
Iteraciones
Múltiples condiciones
Diccionarios
Creación de diccionarios
Selección de elementos
Acceso a claves y valores
Modificación o adición de campos
Conjuntos
Operaciones entre conjuntos
Modificar conjuntos
Clase 4: Funciones
Las funciones son objetos
Definición básica de funciones
Funciones con argumentos opcionales
Número variable de argumentos y argumentos keywords
Argumentos de las funciones
Ámbito de las variables en los argumentos
Tipos mutables en argumentos opcionales
Anotaciones de tipos
Funciones
El tipo
Union
El tipo
Optional
Control de tipos estáticos
MyPy
y notebooks
Clase 5: Más características de Funciones
Empacar y desempacar argumentos
Funciones que devuelven funciones
Ejemplo: Polinomio interpolador
Funciones que toman como argumento una función
Aplicacion: Ordenamiento de listas
Funciones anónimas
Ejemplo: Integración numérica
Uso de funciones anónimas
Funciones y decoradores
Funciones que aceptan y devuelven funciones (Decoradores)
Decoradores, un ejemplo más útil
Programación funcional con Python
Los errores al programar
Los errores en notebooks
Mutabilidad
Funciones
Inmutabilidad
No más loops
Clase 6: Objetos y administración de errores
Atrapar y administrar errores
Administración de excepciones
“Crear” excepciones
Programación Orientada a Objetos
Breve introducción a Programación Orientada a Objetos
Clases y Objetos
Herencia
Atributos de clases y de instancias
Algunos métodos “especiales”
Método
__del__()
Métodos
__str__
y__repr__
Método
__call__
Métodos
__add__
,__mul__
y__abs__
Comparación
Clase 7: Persistencia de datos y módulos de biblioteca standard
Escritura y lectura a archivos
Ejemplos
Módulo Pathlib
Métodos y propiedades
Partes del path
Contenido de directorios
Leer un archivo
Archivos comprimidos
String, bytes y codificaciones
Clase 8: Más sobre objetos
El decorador
@classmethod
Getters y Setters
Función
property
Más sobre herencia
Enum
ydataclass
es
Enum
sDataclasses
Clase 9: Control de versiones y módulos
¿Qué es y para qué sirve el control de versiones?
Cambios en paralelo
Historia completa
Instalación
Interfaces gráficas
Documentación
Configuración básica
Creación de un nuevo repositorio
Clonación de un repositorio existente
Ver el estado actual
Creación de nuevos archivos y modificación de existentes
Actualización de un repositorio remoto
Puntos importantes
Importando módulos
Importando módulos de directorios hijos
Importando módulos desde padres o hermanos
Algunos módulos (biblioteca standard)
Módulo sys
Módulo
os
Módulo
glob
Módulo
Argparse
Módulo
re
Clase 10: Introducción a Numpy y Matplotlib
Introducción
Lectura y escritura de datos a archivos
Características de arrays en Numpy
Comparación de listas y arrays
Uso de memoria de listas y arrays
Velocidad de Numpy
Propiedades de Numpy arrays
Creación de arrays en Numpy
Creación de Arrays unidimensionales
Arrays multidimensionales
Generación de datos equiespaciados
Otras formas de creación
Acceso a los elementos
Operaciones sobre arrays
Operaciones básicas
Comparaciones
Funciones definidas en Numpy
Clase 11: Visualización
Interactividad
Trabajo con ventanas emergentes
Trabajo sobre notebooks
Gráficos simples
Formato de las curvas
Líneas, símbolos y colores
Adecuación de los gráficos
Nombres de ejes y leyendas
Límites de graficación (vista)
Escalas
Líneas verticales y horizontales
Inclusión de ecuaciones
Exportar las figuras
Dos gráficos en la misma figura
Personalizando el modo de visualización
Archivo de configuración
Hojas de estilo
Modificación de parámetros dentro de programas
Clase 12: Más información sobre Numpy
Creación y operación sobre Numpy arrays
Funciones para crear arrays
Funciones que actúan sobre arrays
Productos entre arrays y productos vectoriales
Comparaciones entre arrays
Copias de arrays y vistas
Atributos de arrays
reshape
transpose
min, max
argmin, argmax
sum, prod, mean, std
cumsum, cumprod, trapz
nonzero
Conveniencias con arrays
Convertir un array a unidimensional (ravel)
Enumerate para
ndarrays
Vectorización de funciones escalares
Indexado avanzado
Indexado con secuencias de índices
Índices de arrays multidimensionales
Indexado con condiciones
Función where
Extensión de las dimensiones (Broadcasting)
Unir (o concatenar) arrays
Apilamiento vertical
Apilamiento horizontal
Generación de números aleatorios
Distribución uniforme
Distribución normal (Gaussiana)
Histogramas
Distribución binomial