Variables y tipos de datos en Python con ejemplos

Aprende qué son las variables y tipos de datos en Python, cómo declararlas, qué tipos existen y cómo evitar errores comunes al trabajar con ellas.
¿Qué es realmente una variable?
Imagina que estás en una mudanza. Tienes muchas cajas. Para no volverte loco, pegas una etiqueta en una caja que dice "Libros" y metes tus libros dentro.
En Python, la caja es un espacio en la memoria RAM de tu computadora, la etiqueta es el nombre de la variable y el contenido es el dato.
Regla de Oro: En Python, las variables no "guardan" los datos como cajas físicas, sino que "apuntan" a ellos como flechas. A esto se le llama referencia.
Declaración y Asignación
A diferencia de lenguajes como Java o C++, en Python no necesitas decir "voy a guardar un número". Python es dinámico: él mira el dato y deduce qué es.
# Así de simple se crea una variable
nombre_usuario = "Gabriel"
edad = 28
estatura = 1.75
es_desarrollador = True
Reglas de Etiquetado (Naming)
No puedes llamar a tus variables de cualquier forma. Python tiene reglas y convenciones:
-
Permitido: Letras, números y guiones bajos
_. -
Prohibido: Empezar con números o usar espacios.
-
Case Sensitive:
puntuacionyPuntuacionson dos variables distintas.
El estilo Snake Case 🐍
En Python, por convención (PEP 8), usamos snake_case (palabras en minúscula separadas por guiones bajos).
✅ ultimo_inicio_sesion
❌ ultimoInicioSesion (Esto es CamelCase, se usa en JavaScript).
Nombres prohibidos (palabras reservadas)
Python tiene palabras que no puedes usar como nombres de variable porque ya tienen un significado especial. Algunas de ellas son:
False, True, None, and, or, not, if, else, elif, for, while, break, continue, def, return, import, from, class, try, except, finally, with, as, pass, raise, in, is, lambda.
# ❌ Error: 'if' es una palabra reservada
if = 10
# ✅ Correcto: usamos un nombre válido
condicion_if = 10
Tipos de Datos Primitivos
Para ser un experto, debes conocer los 4 tipos básicos que verás el 90% del tiempo:
| Tipo | Nombre | Ejemplo | Uso |
|---|---|---|---|
String | str | "Hola" | Texto, mensajes, IDs. |
Integer | int | 42 | Números enteros (sin decimales). |
Float | float | 3.14 | Números con decimales (precisión). |
Boolean | bool | True | Valores lógicos (Verdadero/Falso). |
El tipo NoneType
Python tiene un tipo especial llamado None que representa la ausencia de valor. Es diferente de 0, "" (cadena vacía) o False. Se usa para indicar que una variable aún no tiene un valor definido.
resultado = None # Aún no sabemos el resultado
# Más adelante...
resultado = 42 # Ahora sí tiene un valor
El "Tipado Dinámico" y sus Riesgos
Python te permite cambiar el tipo de una variable sobre la marcha. Esto es muy flexible pero peligroso en proyectos grandes.
puntos = 10 # Es un int
puntos = "Diez" # ¡Ahora es un str! Python no se queja.
Consejo Pro: Para evitar confusiones en cursos avanzados, usamos Type Hints (Sugerencias de tipo):
# Le decimos a otros devs que 'edad' debería ser un entero
edad: int = 25
nombre: str = "Ana"
Operaciones con Variables
Las variables no solo están ahí para verse bonitas; interactúan entre sí.
precio_producto = 100
impuesto = 0.21
precio_final = precio_producto * (1 + impuesto)
print(f"El total a pagar es: ${precio_final}")
La función type()
Python incluye una función útil llamada type() que te dice el tipo de cualquier variable. Es ideal para depurar y entender qué tipo de dato estás manejando.
nombre = "Ana"
edad = 25
estatura = 1.75
print(type(nombre)) # <class 'str'>
print(type(edad)) # <class 'int'>
print(type(estatura)) # <class 'float'>
Manipulación de Strings (Cadenas)
nombre = "Gabriel"
apellido = "Maza"
# La forma moderna: f-strings
nombre_completo = f"{nombre} {apellido}"
print(nombre_completo.upper()) # Resultado: GABRIEL MAZA
# También puedes multiplicar strings
separador = "-" * 20
print(separador) # --------------------
Conversión entre tipos (casting)
A veces necesitas convertir un tipo de dato a otro. Python ofrece funciones para esto:
# Convertir string a número
edad_texto = "25"
edad_numero = int(edad_texto)
print(edad_numero + 5) # 30
# Convertir número a string
puntaje = 95
mensaje = "Tu puntaje es: " + str(puntaje)
print(mensaje) # Tu puntaje es: 95
# Convertir a float
precio = "19.99"
precio_float = float(precio)
print(precio_float + 0.01) # 20.0
Errores Comunes (Para no frustrarse)
- NameError: Intentar usar una variable que no has creado todavía.
print(puntos_totales) # Error: name 'puntos_totales' is not defined
- TypeError: Intentar sumar cosas que no pegan.
edad = 25
texto = "Mi edad es " + edad # Error: No puedes sumar texto y números directamente
# ✅ Correcto: convertir a string
texto = "Mi edad es " + str(edad)
Tabla resumen de tipos de datos
| Tipo | Nombre en Python | ¿Mutable? | Ejemplos |
|---|---|---|---|
str | String | No | "Hola", 'Python', "123" |
int | Entero | No | 42, -5, 1000000 |
float | Decimal | No | 3.14, -0.5, 1.0 |
bool | Booleano | No | True, False |
NoneType | Nulo | No | None |
Reto práctico: "Calculadora de propinas"
Escribe un programa que calcule cuánto debe pagar cada persona en una cena compartida.
Variables de prueba:
total_cuenta = 450.00
num_personas = 4
porcentaje_propina = 15 # 15%
# Tu lógica aquí
# propina = ...
# total_con_propina = ...
# total_por_persona = ...
Pista: Primero calcula la propina como porcentaje del total, luego suma la propina al total, y finalmente divide entre el número de personas.
Para calcular el porcentaje, multiplica el total por el porcentaje dividido entre 100: propina = total_cuenta * (porcentaje_propina / 100).
-
Más sobre variables en Python: J2Logo - Variables en Python.
-
Más sobre tipos de datos en Python: El Pythonista - Tipos en Python.
¿Listo para continuar? Ahora que sabes cómo almacenar datos, aprende a manipularlos con operadores en Python.
¿Quieres practicar con ejercicios interactivos? Usa DivZone AI para crear y probar tus propios ejercicios.