Una variable es una caja con nombre donde guardas un valor. En Python creas una variable simplemente asignándole algo con el operador =:
nombre = "Ana"
edad = 25
altura = 1.68
es_estudiante = True
Aquí no declaraste tipos: Python los detectó solo. A esto se le llama tipado dinámico.
Los tipos fundamentales
entero = 42 # int → números sin decimales
decimal = 3.14 # float → números con decimales
texto = "hola" # str → cadenas de caracteres
bandera = True # bool → True o False
nada = None # None → ausencia de valor
Puedes inspeccionar el tipo de cualquier valor con type():
print(type(42)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type("hola")) # <class 'str'>
print(type(True)) # <class 'bool'>
Métodos y operaciones clave de los tipos numéricos y booleanos
En Python todo es un objeto, incluso los enteros y los flotantes. Aunque los números se manejan principalmente con operadores aritméticos, tienen métodos y funciones incorporadas esenciales:
1. Métodos y funciones para enteros (int)
abs(x): Devuelve el valor absoluto (abs(-15)→15).round(x): Redondea al entero más cercano.pow(base, exp, mod): Potencia eficiente, opcionalmente con módulo(base ** exp) % mod.int.bit_length(): Número de bits necesarios para representar el entero en binario ((16).bit_length()→5).int.to_bytes()yint.from_bytes(): Conversión entre enteros y secuencias binarias (vital en redes o criptografía).
2. Métodos y funciones para decimales (float)
float.is_integer(): Comprueba si el decimal equivale a un entero exacto ((4.0).is_integer()→True,(4.5).is_integer()→False).round(flotante, decimales): Redondea a N decimales (round(3.14159, 2)→3.14).float.as_integer_ratio(): Devuelve una tupla(numerador, denominador)que representa la fracción exacta ((0.75).as_integer_ratio()→(3, 4)).
3. Booleanos (bool) y evaluación de verdad
En Python, bool es una subclase de int (True == 1, False == 0). Además, cualquier objeto puede evaluarse en un contexto booleano:
- Falsos por definición (falsy):
0,0.0,""(string vacío),[](lista vacía),()(tupla vacía),{}(dict/set vacío),NoneyFalse. - Verdaderos (truthy): Cualquier número distinto de cero o colección con al menos un elemento.
bool(x): Convierte explícitamente cualquier valor a su verdad lógica (bool("")→False,bool([1, 2])→True).
Nombres de variables
Las reglas son estrictas:
mi_edad = 25 # Correcto: snake_case con guiones bajos
_edad = 25 # Correcto: puede empezar con guion bajo
edad2 = 25 # Correcto: puede terminar con número
2edad = 25 # ERROR: no puede empezar con número
mi-edad = 25 # ERROR: el guion medio es resta
mi edad = 25 # ERROR: no puede tener espacios
La convención de la comunidad es snake_case: minúsculas con guiones bajos entre palabras.
Conversión de tipos (casting)
A veces necesitas convertir un tipo en otro:
numero_texto = "25"
numero = int(numero_texto) # "25" → 25
print(numero + 5) # 30
edad = 25
mensaje = "Tengo " + str(edad) # 25 → "25"
print(mensaje) # Tengo 25
Si intentas unir texto y número directamente, Python lanza un error:
"Tengo " + 25 # TypeError: ¡no puedes sumar str + int!
La trampa de la división
Un detalle importante: el operador / siempre devuelve un float, aunque la división sea exacta:
resultado = 10 / 2
print(resultado) # 5.0 ← float, no 5
print(type(resultado)) # <class 'float'>
Errores comunes
# Usar una variable antes de crearla
print(edad) # NameError: la variable aún no existe
edad = 25
# Diferenciar mayúsculas: Python distingue entre ellas
edad = 25
print(Edad) # NameError: "Edad" no es lo mismo que "edad"
Resumen
- Las variables se crean con
nombre = valor, sin declarar tipo - Tipos base:
int,float,str,bool,None - Nombres en snake_case, sin números al inicio ni caracteres especiales
- Convierte con
int(),float(),str(),bool() - La división
/siempre devuelvefloat