1 - Introducción a la librería estándar de Python
Lección 1 del curso Python Nivel Intermedio.
Tabla de contenido
Introducción
Un elemento clave en la programación es evitar “reinventar la rueda”, es decir aprovechar funciones y código ya existentes para acelerar el proceso de desarrollo de un programa , en lugar de escribir cientos o miles de líneas de código desde cero.
En esta primera lección veremos una introducción a la librería estándar de Python, que nos proporciona un amplio abanico de funciones y módulos con diferentes prestaciones, y que precisamente podemos aprovechar durante el desarrollo de nuestros programas para así evitar “reinventar la rueda”.
Video
En el canal de YouTube puedes ver el video completo de esta primera lección:
Generalidades de la librería estándar de Python
La librería estándar de Python es extensa, y contiene una amplia variedad de funciones, módulos y tipos de datos que están pensados para el desarrollo de aplicaciones en ámbitos como el procesamiento de texto, la lectura y almacenamiento de archivos, el desarrollo web, la manipulación de audio e incluso el envío y recepción de datos a través de Internet, entre otras.
La estructura de esta librería es la siguiente:
- Contiene una serie de funciones, constantes, tipos de datos y excepciones incorporadas (o built-in en Inglés) que son cargadas automáticamente al momento de abrir el intérprete de Python
- Y contiene una colección de módulos, que es la mayor parte de la librería, y que permiten el desarrollo de programas pensados para aplicaciones específicas. Estos módulos no son cargados automáticamente y, en su lugar, deben ser importados (usando la directiva
import
en nuestro código).
Teniendo en cuenta que la cantidad de funciones y módulos es elevada, no veremos uno a uno. En su lugar, a continuación veremos en detalle la estructura de la librería y en la próxima lección veremos en detalle algunos de los módulos más usados.
También vale la pena aclarar que todos los detalles que presentaremos a continuación hacen referencia a la versión 3.10 de Python (la más reciente al momento de publicar esta lección).
Funciones incorporadas
Contiene más de 70 funciones incorporadas que están disponibles automáticamente cuando abrimos cualquier intérprete de Python.
Por ejemplo, funciones como print()
, range()
input()
o float()
que usamos en el curso de “Python Nivel Básico”, hacen parte precisamente de este grupo de funciones.
Todas estas funciones incorporadas permiten realizar un procesamiento básico sobre diferentes tipos de datos. Por ejemplo:
- Las funciones
any()
,bool()
oisintance()
permiten por ejemplo operar sobre diferentes tipos de datos y generar a la salida un tipo de dato booleano (True
oFalse
) - Las funciones
int()
,float()
oabs()
permiten operar sobre un dato y generar cantidades numéricas. - Las funciones
id()
,type()
oproperty()
permiten obtener información de un objeto almacenado en memoria.
Constantes incorporadas
Son 6 las constantes incorporadas y que también son cargadas automáticamente al momento de abrir el intérprete de Python. Las más usadas comúnmente son
True
yFalse
que son los valores Verdadero y Falso usados en operaciones booleanas.None
, que es un tipo de dato usado cuando creamos una variable en memoria pero no tiene un valor definido.
Tipos de datos incorporados
En este caso tendremos entre los más importantes 3 grandes grupos de tipos de datos: los numéricos, las secuencias y las colecciones no organizadas:
- Los numéricos permiten representar de diferentes formas, como su nombre lo indica, los tipos de dato numéricos. Acá tenemos
int
(para números enteros),float
(para números almacenados en punto flotante o decimales) ycomplex
(para representar los números complejos). - En las secuencias tendremos las listas (
list
) y las tuplas (tuple
) (las cuales veremos en detalle más adelante en este curso), que permiten almacenar una colección de datos de forma organizada en una misma variable. En este tipo de secuencias también se encuentran los strings (str
) que son precisamente una colección organizada de caracteres. Y también tenemos los datos tipobyte
ybytearray
que permiten almacenar datos de tipo binario (es decir secuencias de 0s y 1s) - También tenemos colecciones no organizadas, que permiten almacenar un conjunto de datos pero sin un orden en particular. Y los dos principales tipos de datos en este caso son los diccionarios (
dict
) y los sets (set
) de los cuales también hablaremos en detalle más adelante en este curso.
Excepciones incorporadas
Una excepción es un evento que se da durante la ejecución de un programa y que interrumpe su flujo normal. En Python es un tipo de objeto que representa un error.
Así que cuando ejecutamos un programa y alguna línea de código contiene un error, el mensaje que aparece impreso en pantalla es precisamente un tipo de dato conocido como excepción.
Las excepciones más comunes presentes en la librería estándar son:
AttributeError
(o error de atributo): recordemos que una variable en Python es un objeto que contiene unos atributos y unos métodos (a los cuales podemos acceder después de escribir el punto al frente del nombre de la variable). Si intentamos acceder a un atributo o método y este no existe para este tipo de dato, recibiremos precisamente un error de atributo.ImportError
(error de importación): cuando intentamos importar un módulo y este no se encuentra en la instalación de Python.ModuleNotFoundError
(error de importación de un módulo): es una subclase deImportError
y aparece generalmente cuando el módulo principal se puede cargar, pero uno o varios sub-módulos que hacen parte de este no se encuentran instalados.MemoryError
: cuando el programa que estamos ejecutando agota por completo la memoria RAM del computador y por tanto el programa detiene su ejecución.NameError
: cuando la variable a la que hacemos referencia en nuestro código no ha sido creada en memoria (¡no existe!)SyntaxError
: cuando hay un error de sintaxis en nuestro código, generalmente cuando lo escribimos incorrectamente. Por ejemplo en la línea'variable' = 5
aparecerá un error de sintaxis pues hemos escritovariable
entre comillas (como un string) y por tanto no podremos asignar a este tipo de variable una cantidad numérica.IndentationError
: cuando por ejemplo al usarif
,while
,for
odef
indentamos incorrectamente algunas líneas de código.
Módulos y paquetes
Un módulo en Python es simplemente un archivo (con extensión .py) que agrupa tipos de datos, funciones y clases (es decir definiciones de objetos) encargadas de realizar una tarea en particular. Por otra parte, un paquete agrupa múltiples módulos con propósitos similares.
Teniendo en cuenta que la librería estándar de Python contiene un número inmenso de módulos, veremos a continuación los principales paquetes y dentro de estos los módulos más importantes, aclarando que todos estos módulos deben ser importados usando de manera explícita la directiva import
en nuestro código:
- Interfaz con el sistema operativo: que contiene funciones para interactuar con el sistema operativo, como por ejemplo para obtener la ruta del directorio de trabajo (
os.getcwd()
), cambiar de directorio (os.chdir()
), copiar y mover archivos (shutil.copyfile()
,shutil.move()
) - Rutas de archivos: como el módulo
glob
, que permite encontrar la ruta completa de un archivo o una serie de archivos a partir de un string de búsqueda - Argumentos de la línea de comandos: que permite acceder a variables usadas por el intérprete de Python al ejecutar un programa o también permiten crear interfaces con el usuario desde la línea de comandos (
sys
yargparse
) - Expresiones regulares: que abordaremos más adelante en este curso y que permiten realizar el procesamiento avanzado de strings y de texto en general (
re
) - Matemáticas: funciones para realizar de forma eficiente operaciones matemáticas, para la manipulación de datos de forma aleatoria o para el cálculo de operaciones estadísticas (
math
,random
ystatistics
) - Acceso a Internet: módulos para acceder a Internet y que implementan protocolos de Internet, entre los que se encuentran:
urllib.request
para extraer datos de URLs (es decir de sitios en Internet)smptlib
para el envío de e-mails
- Manipulación de fechas y horas: funciones para manipular fechas y horas con diferentes niveles de complejidad. El principal módulo es
datetime
- Compresión de datos: funciones para comprimir y guardar archivos en diferentes formatos (
zlib
,gzip
,zipfile
,tarfile
) - Medición de desempeño: muy útil en el desarrollo de programas cuando queremos optimizar su tiempo de ejecución (
timeit
) - Procesamiento en paralelo: módulos que permiten implementar código que de forma simultánea se pueda ejecutar en múltiples procesadores (
threading
,multiprocessing
) - Interfaces gráficas: que permiten encapsular nuestros programas en una interfaz que sea de fácil acceso e interacción por parte del usuario (
tkinter
)
Y el listado anterior es sólo una parte de toda la amplia variedad de paquetes y módulos disponibles en la librería estándar de Python.
Conclusión
Hemos visto un panorama de la librería estándar de Python, que contiene funciones, tipos de datos, constantes y excepciones incorporadas así como una gran variedad de módulos y paquetes.
Así que de inmediato entraremos de lleno con el componente práctico del curso. En la próxima lección usaremos Jupyter Notebook para realizar un tour práctico por esta librería estándar de Python.