Veamos ahora los tipos de datos básicos. Como ya hemos dicho, esta será solo una breve introducción, puesto que los trataremos con detalle en el Capítulo 2.
Las cadenas de texto
Las cadenas de texto en Python están representadas por una secuencia de caracteres Unicode de longitud arbitraria, encerrados entre comillas simples, comillas, tres comillas simples o tres comillas.
Una cadena de texto es un objeto de tipo str:
y sus elementos están ordenados, lo que significa que a cada uno de ellos se le asocia un número entero llamado índice, que vale 0 para el elemento más a la izquierda y aumenta en una unidad progresivamente para el resto, yendo ordenadamente de izquierda a derecha.
Por este motivo, las cadenas de caracteres pertenecen a la categoría de las secuencias, la cual comprende todos los tipos integrados que representan contenedores ordenados de longitud arbitraria (cadenas, listas y tuplas).
El método str.index() devuelve el índice de la primera aparición del elemento pasado como argumento:
También es posible completar la operación inversa, es decir, obtener un elemento de la cadena de caracteres utilizando como palabra clave el índice.
Esta operación se denomina indexación (indexing) y se lleva a cabo mediante la siguiente sintaxis:
Otra operación que podemos realizar con los índices es la fragmentación (slicing), que permite obtener los elementos de una cadena comprendidos entre dos índices arbitrarios:
Las operaciones de indexación y de fragmentación son habituales en todos los objetos que pertenecen a la categoría de las secuencias. Esta categoría se encuentra dentro de otra más genérica, la de los objetos iterables, de los cuales hablaremos en la sección Objetos iterables, iteradores y contexto de iteración al final de este capítulo. Los objetos iterables soportan una operación denominada de desempaquetado (unpacking), que consiste en asignar los elementos del objeto a etiquetas, del modo siguiente:
Veamos otras operaciones que podemos realizar con las cadenas de caracteres:
Los objetos de tipo str no pueden ser modificados, y por este motivo se dice que son objetos inmutables:
Las listas
Las listas también pertenecen a la categoría de las secuencias, pero, a diferencia de las cadenas, pueden contener objetos de algún tipo. Se representan insertando los elementos entre corchetes, separados por una coma:
Como ya sabemos, las listas pueden ser modificadas. Por este motivo se dice que son objetos mutables.
Las tuplas
Otros tipos de objetos parecidos a las listas son las tuplas. Estas también pertenecen a la categoría de las secuencias y pueden contener objetos de cualquier tipo, pero, a diferencia de las listas, son inmutables, y se representan insertando los elementos entre paréntesis en lugar de entre corchetes:
Los diccionarios
Los diccionarios son contenedores que tienen como elementos parejas clave:valor. Se representan insertando los elementos entre llaves, separados por una coma:
A diferencia de los objetos que pertenecen a la categoría de las secuencias, los diccionarios no son contenedores ordenados, por lo cual su búsqueda se efectúa por clave y no por índice:
Los conjuntos
Los conjuntos son contenedores no ordenados de objetos únicos e inmutables, y tienen las mismas propiedades que los conjuntos matemáticos. Los conjuntos se representan insertando los elementos entre llaves y separándolos con una coma:
Los conjuntos son objetos mutables:
Sin embargo, los elementos de un conjunto deben ser objetos inmutables:
Funciones y clases integradas
Ya hemos visto alguna clase y función integrada, como type y id(). Veamos ahora otros ejemplos en acción para poder ir apreciando la potencia de los objetos integrados de Python:
Un primer vistazo a la librería estándar y al concepto de módulo
Probablemente hemos oído decir que Python tiene las pilas incluídas (batteries included). Esta frase la utilizan los pythonistas para decir que, una vez instalado Python, ya disponemos de todo cuanto necesitamos para ser productivos, puesto que, además de contar con objetos integrados de altísimo nivel, disponemos también de una librería estándar (standard library) que lo abarca prácticamente todo.
La librería estándar de Python está estructurada en módulos, cada uno de los cuales tiene un entorno de uso concreto. Por ejemplo, el módulo math nos permite trabajar con las matemáticas, el módulo datetime, con la fecha y la hora, entre otros. Para importar un módulo se utiliza la palabra clave import, y después, como para todos los otros objetos, podemos acceder a sus atributos mediante el delimitador punto:
Podemos utilizar import en combinación con la palabra clave from para importar desde el módulo solo los atributos que nos interesan, evitando así tener que escribir el nombre del módulo cada vez.
Otros módulos de la librería estándar, que utilizaremos en múltiples ocasiones en este libro, son datetime, sys y os. El módulo datetime, como ya hemos dicho, nos permite trabajar con la fecha y la hora: