Saltar al contenido principal

Tipos de datos básicos

En la unidad anterior aprendimos qué son las variables y cómo utilizarlas para guardar información.

Por ejemplo:

nombre = "María"
edad = 25

En ambos casos estamos utilizando variables, pero la información que estamos guardando no es del mismo tipo.

nombre contiene un texto.

edad contiene un número.

En Python existen diferentes tipos de datos para representar diferentes clases de información.

Un tipo de dato nos indica qué clase de información estamos manejando.

En esta unidad conoceremos cuatro tipos básicos que utilizaremos constantemente:

  • str para texto
  • int para números enteros
  • float para números decimales
  • bool para valores verdadero o falso

¿Qué es un tipo de dato?

Imagina que tienes una caja en la que puedes guardar diferentes objetos.

Puedes guardar una camiseta, un libro o una pelota, pero saber qué objeto tienes delante es importante para saber qué puedes hacer con él. Veremos que al igual que no podemos leer una camiseta o ponernos una pelota, habrá operaciones en Python para las que necesitaremos distinguir el tipo de dato.

En Python ocurre algo parecido.

Una variable puede contener diferentes tipos de información:

nombre = "María"
edad = 25
altura = 1.68
es_estudiante = True

Las cuatro son variables, pero cada una contiene un tipo de dato diferente.

nombre          → texto
edad → número entero
altura → número decimal
es_estudiante → verdadero o falso

El tipo de dato es importante porque no podemos tratar todos los valores de la misma manera.

Por ejemplo, tiene sentido trabajar con una edad como un número, mientras que un nombre es texto.

No necesitamos conocer todavía todas las operaciones que podemos hacer con cada tipo. Lo importante en este momento es aprender a reconocerlos.


Las variables no tienen un tipo fijo

Una variable puede recibir un valor de un tipo y posteriormente otro de un tipo diferente.

Por ejemplo:

dato = 25

En este momento dato contiene un número entero.

Más adelante podemos asignarle un texto:

dato = 25
...
...
dato = "Hola"

Al final dato contiene un texto.

Por tanto, no debemos pensar que una variable está obligada a contener siempre el mismo tipo de dato.


Texto: str

Cuando queremos guardar texto utilizamos el tipo str ( viene de la palabra string, del inglés "cadena de texto").

Por ejemplo:

nombre = "María"
ciudad = "Valencia"

Aquí nombre y ciudad contienen texto.

Para indicar a Python que estamos escribiendo texto utilizamos comillas ("").

Podemos utilizar comillas dobles:

nombre = "María"

O comillas simples:

nombre = 'María'

En ambos casos estamos creando un valor de tipo texto str.

También podemos guardar frases completas:

mensaje = "Hola, ¿cómo estás?"

Las comillas hacen que Python interprete ese valor como texto, sea cual sea el contenido que escribamos entre ellas.

De hecho, si creamos la siguiente variable:

edad = "30"

No estamos guardando el número 30, sino un texto cuyo contenido es "30".

Que algo tenga números escritos dentro no significa necesariamente que Python lo interprete como un número.

Veremos más adelante cómo puede afectar el tipo de la variable en el caso de los números y cuál será la diferencia entre escribir:

# Texto
edad = "30"

con:

# Número
edad = 30

Números enteros: int

Los números enteros son números que no tienen parte decimal.

En Python su tipo es int (viene de integer, "número entero" en inglés).

En este caso se escriben siempre tal cual, sin comillas. Por ejemplo:

vidas = 3
puntos = 0
temperatura = -3

Estos tres valores son números enteros.

Pueden ser:

  • positivos;
  • negativos;
  • cero.

No necesitamos escribir ninguna comilla para representar un número entero.

Por eso:

edad = 25

guarda el número entero 25, mientras que:

edad = "25"

guarda el texto "25".

Esta diferencia será importante cuando más adelante empecemos a realizar operaciones con los datos.


Números decimales: float

A veces necesitamos representar números que tienen una parte decimal.

Por ejemplo:

altura = 1.78
precio = 2.5
pi = 3.1416
kilometros = 3126.7

Estos valores son números decimales y en Python pertenecen al tipo float.

La diferencia principal respecto a int es que un float puede representar una parte decimal.

Por ejemplo:

25     → número entero
25.5 → número decimal

Hay algo importante que debemos recordar cuando escribimos números decimales en Python: Utilizamos un punto, no una coma.

Esto es correcto:

precio = 12.50

Sin embargo, esto es incorrecto:

precio = 12,50

La coma tiene otros usos en Python que veremos más adelante.

Por ahora, cuando queramos escribir un número decimal, utilizaremos siempre un punto.


Valores booleanos: bool

Hay situaciones en las que solo necesitamos representar dos posibilidades.

Por ejemplo:

  • sí o no;
  • verdadero o falso;
  • encendido o apagado;
  • tiene o no tiene.

Para este tipo de información utilizamos los valores bool (booleanos).

En Python existen únicamente dos posibles valores para una variable booleana:

True
False

Por ejemplo:

es_mayor_de_edad = True
tiene_coche = False

Podemos leer estas variables como:

es_mayor_de_edad → verdadero
tiene_coche → falso

Los valores True y False son especiales en Python y debemos escribirlos con la primera letra en mayúscula.


Comparando tipos de datos

Ya conocemos cuatro tipos básicos.

Podemos tener varias variables juntas:

nombre = "Esther"
edad = 26
altura = 1.68
es_estudiante = True

Podemos resumirlo así:

TipoNombreEjemplo
strTexto"Esther"
intNúmero entero26
floatNúmero decimal1.68
boolVerdadero o falsoTrue

Lo más importante ahora es empezar a reconocer los distintos tipos cuando los encontremos en un programa.


¿Cómo podemos saber el tipo de un dato?

Hasta ahora hemos podido identificar algunos tipos simplemente observando el código (comillas para los textos, sin comillas para los números, etc).

Pero Python también puede decirnos qué tipo de dato estamos utilizando.

Para ello podemos utilizar una nueva función: type().

Su sintaxis es type(elemento), y devuelve el tipo de dato del elemento en cuestión. Por ejemplo:

print(type("Hola"))

Python nos indica que "Hola" es un str mostrando esto en la salida:

<class 'str'>
Salida de type()

Podemos hacer lo mismo con un número entero:

print(type(25))

Resultado:

<class 'int'>

Con un número decimal:

print(type(3.14))

Resultado:

<class 'float'>

Y con un booleano:

print(type(True))

Resultado:

<class 'bool'>

Por tanto, type() nos permite consultar qué tipo de dato estamos utilizando.

Entre los paréntesis de type() podemos tanto escribir un valor concreto como una variable:

print(type(25))

precio = 7
print(type(precio))
<class 'int'>
<class 'int'>

No necesitamos preocuparnos ahora por lo que significa exactamente <class ...>. Por el momento basta con reconocer el nombre del tipo:

<class 'str'>    → texto
<class 'int'> → entero
<class 'float'> → decimal
<class 'bool'> → booleano

Más adelante conoceremos otros conceptos relacionados con esta información.


Un ejemplo completo

Vamos a combinar los cuatro tipos de datos que hemos aprendido.

nombre = "María"
edad = 25
altura = 1.68
es_estudiante = True

print(nombre)
print(edad)
print(altura)
print(es_estudiante)

Tenemos cuatro variables.

La primera contiene un texto:

nombre = "María"

La segunda contiene un número entero:

edad = 25

La tercera contiene un número decimal:

altura = 1.68

Y la cuarta contiene un valor booleano:

es_estudiante = True

Después utilizamos las variables con print() para mostrar sus valores:

print(nombre)
print(edad)
print(altura)
print(es_estudiante)

El resultado será:

María
25
1.68
True

También podemos consultar el tipo de cada variable:

print(type(nombre))
print(type(edad))
print(type(altura))
print(type(es_estudiante))

Obtendremos:

<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>

De esta forma podemos comprobar qué tipo de dato contiene cada variable.


Errores habituales

Cuando empezamos a trabajar con diferentes tipos de datos es fácil confundir algunos conceptos.

Confundir la variable con el valor almacenado

Recuerda, al declarar una variable, por ejemplo:

nombre = "Lorena"
  1. La variable es nombre
  2. El valor almacenado es "Lorena"

Confundir un número con texto

Estas dos variables no contienen el mismo tipo de dato:

edad = 25
edad_texto = "25"

En la primera, 25 es un int.

En la segunda, "25" es un str.

Las comillas son las que hacen que Python interprete el valor como texto.


Utilizar una coma para los decimales

Si queremos guardar un número decimal, debemos utilizar un punto:

precio = 12.50

No debemos escribir:

precio = 12,50

Escribir mal True y False

Los valores booleanos deben escribirse exactamente así:

es_mayor = True

o:

es_mayor = False

No debemos escribir:

es_mayor = true

ni:

es_mayor = false

Python diferencia entre mayúsculas y minúsculas.


💡 Curiosidad

Python tiene muchos más tipos de datos además de los cuatro que acabamos de conocer.

Por ejemplo, existen tipos que permiten trabajar con colecciones de información, como las listas, los diccionarios o los conjuntos, que nos serán de mucha utilidad en el futuro para organizar y trabajar con colecciones de información.

No necesitamos aprenderlos todavía.

Primero vamos a construir una base sólida con los tipos más sencillos y, más adelante, iremos incorporando nuevas formas de trabajar con información.


Mini reto: crea un perfil

Ahora vamos a practicar los diferentes tipos de datos.

Enunciado

Crea un programa que almacene información sobre una estudiante utilizando:

  • un nombre
  • una edad
  • una escuela
  • una nota media
  • si tiene una actividad extraescolar o no

Utiliza un tipo de dato adecuado para cada información.

Después:

  1. Muestra todos los valores por pantalla.
  2. Muestra el tipo de cada variable utilizando type().
  3. Cambia uno de los valores y vuelve a ejecutar el programa.

Para pensar

Cuando hayas terminado, intenta responder:

  • ¿Qué variables son de tipo str?
  • ¿Cuál es de tipo int?
  • ¿Cuál es de tipo float?
  • ¿Cuál es de tipo bool?
  • ¿Qué diferencia hay entre guardar 3.34 y guardar "3.34"?
  • ¿Qué ocurre si cambias el valor de una variable por uno de otro tipo?

El objetivo es que empieces a reconocer los tipos de datos de forma natural cuando leas código Python.


Qué debes recordar

En esta unidad hemos aprendido que una variable puede guardar diferentes tipos de información.

Los cuatro tipos básicos que hemos visto son:

str    → texto
int → números enteros
float → números decimales
bool → True o False

También hemos aprendido que podemos consultar el tipo de un valor utilizando type():

print(type(25))

Y que debemos prestar atención a cómo escribimos los valores.

A partir de ahora ya podemos guardar diferentes clases de información en nuestras variables y reconocer qué tipo de dato estamos utilizando.