Cuando empezamos a programar en Python, uno de los conceptos más importantes es entender que cada valor tiene un tipo de dato. Ese tipo determina qué representa el valor, qué operaciones podemos hacer con él y cómo se comporta dentro del programa.
En esta guía vamos a repasar los principales tipos de datos básicos de Python: int, float, str, bool y None. También veremos cómo identificarlos, convertirlos y evitar errores frecuentes.
Idea clave: Python utiliza tipado dinámico. No necesitamos declarar explícitamente el tipo de una variable antes de usarla, pero eso no significa que los tipos no existan. Cada valor sigue teniendo un tipo concreto.
¿Qué es un tipo de dato?
Un tipo de dato indica qué clase de información estamos almacenando.
edad = 30 precio = 1250.50 nombre = "Ana" activo = True
En este ejemplo:
edadcontiene un número entero;preciocontiene un número decimal;nombrecontiene texto;activocontiene un valor lógico.
¿Por qué existen distintos tipos de datos?
Clasificar los datos no es solamente una cuestión de organización. La computadora necesita saber cómo interpretar y manipular la información que guarda en memoria.
Por ejemplo, estos dos valores se parecen visualmente:
edad = 25 texto = "25"
Sin embargo, para Python no representan lo mismo. edad es un número entero y puede participar directamente en operaciones matemáticas. texto es una cadena formada por caracteres.
Los tipos de datos son importantes principalmente por tres motivos:
- Representación en memoria: cada tipo necesita una forma determinada de representar la información internamente.
- Operaciones permitidas: Python necesita saber qué operaciones tienen sentido para cada valor. Sumar números no significa lo mismo que concatenar texto.
- Uso de recursos: diferentes tipos y valores pueden requerir distinta cantidad de memoria y diferente trabajo de procesamiento.
En lenguajes de más bajo nivel, como C, elegir un tipo suele estar directamente relacionado con reservar una cantidad determinada de memoria. En Python esta administración es más abstracta y automática: los valores son objetos y el intérprete se ocupa de gran parte de la gestión de memoria.
Por eso no conviene pensar que un int de Python siempre ocupa una cantidad fija de bytes. El consumo real depende de la implementación de Python, del valor almacenado y de otros detalles internos.
Lo importante al comenzar es comprender que el tipo le indica a Python qué clase de dato tiene delante, cómo debe interpretarlo y qué puede hacer con él.
1. int: números enteros
El tipo int representa números enteros, positivos o negativos, sin parte decimal.
edad = 25 cantidad = 10 temperatura = -3
Podemos realizar operaciones matemáticas normalmente:
a = 10 b = 3 print(a + b) print(a - b) print(a * b) print(a // b) print(a % b)
La división entera // descarta la parte decimal y % devuelve el resto.
2. float: números decimales
El tipo float representa números con parte decimal.
precio = 1499.99 altura = 1.78 promedio = 8.5
Podemos combinar enteros y decimales:
cantidad = 3 precio = 250.50 total = cantidad * precio print(total)
El resultado será un float.
3. str: cadenas de texto
El tipo str se utiliza para almacenar texto.
nombre = "Club Programador" lenguaje = 'Python'
Podemos concatenar cadenas:
nombre = "Ana" apellido = "Perez" nombre_completo = nombre + " " + apellido print(nombre_completo)
También podemos repetir texto:
print("Hola " * 3)
Y acceder a caracteres mediante índices:
texto = "Python" print(texto[0]) print(texto[1])
Recordá que en Python los índices comienzan en 0.
4. bool: verdadero o falso
El tipo bool solamente puede tener dos valores:
True False
Es fundamental para condiciones y comparaciones:
edad = 20 es_mayor = edad >= 18 print(es_mayor)
El resultado será:
True
Los valores booleanos suelen aparecer directamente dentro de estructuras if y while.
5. None: ausencia de valor
None representa la ausencia de un valor.
resultado = None print(resultado)
No significa cero ni una cadena vacía. Es un valor especial que indica que todavía no existe un dato útil o que una función no devolvió un resultado concreto.
Cómo saber el tipo de un dato con type()
Python incluye la función type().
edad = 30 precio = 10.5 nombre = "Python" activo = True print(type(edad)) print(type(precio)) print(type(nombre)) print(type(activo))
El resultado será similar a:
<class 'int'> <class 'float'> <class 'str'> <class 'bool'>
Python tiene tipado dinámico
En Python una variable puede apuntar a valores de distintos tipos durante la ejecución.
dato = 10 print(type(dato)) dato = "Hola" print(type(dato))
Primero dato contiene un entero y luego una cadena.
Esto da flexibilidad, pero también exige prestar atención a los tipos que estamos utilizando.
input() siempre devuelve texto
Este punto es especialmente importante para quienes recién empiezan.
edad = input("Ingrese su edad: ") print(type(edad))
Aunque el usuario escriba 25, la variable será de tipo str.
Para trabajar matemáticamente con ese valor debemos convertirlo:
edad = int(input("Ingrese su edad: "))
Conversión de tipos
Python permite convertir valores mediante funciones incorporadas.
Convertir a int
texto = "25" numero = int(texto) print(numero) print(type(numero))
Convertir a float
texto = "10.75" precio = float(texto) print(precio)
Convertir a str
edad = 30 mensaje = "Tengo " + str(edad) + " anios" print(mensaje)
Convertir a bool
print(bool(1)) print(bool(0)) print(bool("Hola")) print(bool(""))
En estos ejemplos, 1 y una cadena con contenido se consideran verdaderos, mientras que 0 y una cadena vacía se consideran falsos.
Conversión implícita y explícita
Python puede realizar algunas conversiones automáticamente.
entero = 10 decimal = 2.5 resultado = entero + decimal print(resultado) print(type(resultado))
El entero se combina con el decimal y el resultado es un float.
En cambio, cuando escribimos nosotros la conversión usamos una conversión explícita:
edad = int("25")
Errores comunes al convertir datos
No todos los textos se pueden convertir a número.
numero = int("hola")
Este código genera un ValueError, porque la palabra "hola" no representa un número entero.
También debemos distinguir enteros de decimales:
numero = int("10.5")
Esto también genera error.
Una opción correcta sería:
numero = float("10.5")
Operaciones que dependen del tipo
El mismo operador puede comportarse de forma diferente dependiendo del tipo.
print(2 + 3) print("2" + "3")
El resultado será:
5 23
En el primer caso Python suma números. En el segundo concatena cadenas.
Comparar distintos tipos
Antes de comparar valores conviene asegurarse de que representen el mismo tipo de información.
edad = input("Ingrese su edad: ") if int(edad) >= 18: print("Mayor de edad")
Sin la conversión, estaríamos intentando comparar texto con un número.
Ejercicio 1: mostrar el tipo de diferentes variables
nombre = "Lucas" edad = 22 altura = 1.80 estudia = True print(type(nombre)) print(type(edad)) print(type(altura)) print(type(estudia))
Ejercicio 2: calcular la edad el próximo año
edad = int(input("Ingrese su edad: ")) edad_proxima = edad + 1 print("El proximo anio tendra", edad_proxima)
Ejercicio 3: calcular el total de una compra
precio = float(input("Ingrese el precio: ")) cantidad = int(input("Ingrese la cantidad: ")) total = precio * cantidad print("Total:", total)
Ejercicio 4: convertir un número a texto
numero = 100 mensaje = "El valor es " + str(numero) print(mensaje)
Ejercicio 5: comparar dos edades
edad1 = int(input("Ingrese la primera edad: ")) edad2 = int(input("Ingrese la segunda edad: ")) if edad1 > edad2: print("La primera persona es mayor") elif edad2 > edad1: print("La segunda persona es mayor") else: print("Tienen la misma edad")
Ejercicio 6: convertir temperatura
Convertimos grados Celsius a Fahrenheit.
celsius = float(input("Ingrese grados Celsius: ")) fahrenheit = celsius * 9 / 5 + 32 print("Fahrenheit:", fahrenheit)
Ejercicio 7: comprobar si una cadena está vacía
texto = input("Ingrese un texto: ") if bool(texto): print("La cadena tiene contenido") else: print("La cadena esta vacia")
Ejercicio 8: trabajar con None
resultado = None if resultado is None: print("Todavia no existe un resultado")
Para comparar con None normalmente utilizamos is None.
Ejercicio 9: detectar el tipo de un resultado
a = 10 b = 4 resultado = a / b print(resultado) print(type(resultado))
La división con / devuelve un float.
Ejercicio 10: pedir nombre y edad
nombre = input("Ingrese su nombre: ") edad = int(input("Ingrese su edad: ")) print("Nombre:", nombre) print("Edad:", edad) print("Tipo del nombre:", type(nombre)) print("Tipo de la edad:", type(edad))
Resumen de tipos básicos
| Tipo | Ejemplo | Uso |
|---|---|---|
int |
25 |
Números enteros |
float |
10.5 |
Números decimales |
str |
"Python" |
Texto |
bool |
True |
Valores lógicos |
NoneType |
None |
Ausencia de valor |
Qué conviene recordar
- Python tiene tipado dinámico.
- Cada valor sigue teniendo un tipo.
type()permite inspeccionar ese tipo.input()devuelve siempre una cadena.int(),float(),str()ybool()permiten realizar conversiones.- No todas las conversiones son válidas.
- El comportamiento de una operación puede depender del tipo de dato.
Nonerepresenta ausencia de valor.
Próximo paso: listas en Python
Una vez comprendidos los tipos de datos básicos, el siguiente paso es aprender a almacenar varios valores dentro de una misma estructura. Para eso vamos a trabajar con listas en Python, recorriéndolas, modificándolas, buscando elementos y resolviendo ejercicios prácticos.
Seguí aprendiendo Python
Si querés volver a una colección general de práctica, podés revisar los 20 ejercicios resueltos de Python para principiantes.
El siguiente paso de la ruta es aprender a controlar el flujo del programa:
Condicionales y ciclos en Python: 20 ejercicios resueltos →
Ver la ruta completa de Python →
¿Te sirvió esta guía? ☕
Si este contenido te ayudó a entender mejor Python, podés apoyar a Club Programador. Cada aporte ayuda a mantener el sitio online y a seguir publicando material gratuito.
🇦🇷 Apoyar desde Argentina
☕ Invitame un café con Mercado Pago