Variables y tipos

Todo programa necesita recordar cosas. Un cuestionario necesita el nombre del jugador. Un juego necesita la puntuación actual. Un script de clima necesita la ciudad que estás consultando. Python usa variables para esto: nombres que asignas a valores para poder usarlos en todo tu programa.
nombre_jugador = "María"
puntuacion = 0
ciudad = "México"Tres líneas, tres cosas que Python ahora recuerda. Para cada una, Python evalúa el valor en el lado derecho primero, luego lo almacena bajo el nombre en el lado izquierdo. Usa ese nombre después y Python te devuelve el valor.
Almacenar un valor
El signo = confunde a casi todos los que vienen de la clase de matemáticas. En Python, = no significa "igual". Significa almacena este valor bajo este nombre:
ciudad = "México"ciudad obtiene "México". Le estás diciendo a Python: recuerda "México" y etiquétalo ciudad.
Puedes reemplazar el valor de una variable en cualquier momento. Python usa el más reciente:
puntuacion = 0
puntuacion = 10 # puntuacion es ahora 10
puntuacion = 15 # puntuacion es ahora 15= no es "igual" de clase de matemáticas, es "guarda este valor bajo este nombre". Cámbialo cuando quieras y Python mantiene el más nuevo. Sin declarar, sin configuración, lo nombras y existe. Me tomó demasiado tiempo dejar de obsesionarme con este. Nombrar tus variables
Tú eliges el nombre. Python tiene pocas reglas duras, y la comunidad sigue convenciones que vale la pena adoptar desde el primer día. Los nombres claros hacen que el código sea legible semanas después. Los nombres crípticos causan dolor.
Reglas que Python hace cumplir:
- Solo letras, dígitos y guiones bajos. Sin espacios ni guiones.
- Debe comenzar con una letra o guión bajo, nunca un dígito
- Sensible a mayúsculas:
puntuacion,PuntuacionyPUNTUACIONson tres variables separadas
Convenciones que todos siguen (PEP 8):
| Cosa | Estilo | Ejemplo |
|---|---|---|
| Variables y funciones | snake_case | nombre_usuario, precio_total |
| Constantes | UPPER_SNAKE_CASE | MAX_REINTENTOS, URL_BASE |
| Clases | PascalCase | CuentaUsuario, CargadorDatos |
# nombres claros, legibles de un vistazo
nombre_usuario = "María"
precio_total = 49.99
esta_conectado = True
MAX_REINTENTOS = 3
# te arrepentirás de estos en menos de una hora
x = "María"
pt = 49.99
b = TrueUna trampa que vale la pena conocer temprano: no nombres una variable con un nombre de función integrada de Python como list, input, type o print. Python lo permite, pero silenciosamente romperás la función integrada para el resto de ese alcance y los errores resultantes son difíciles de rastrear.
snake_case y estarás bien. Mi error de principiante: no llames a una variable list o print. Python te lo permite, luego todo se vuelve raro después sin advertencia. Qué puedes almacenar
Python tiene cuatro tipos que usarás en casi todos los programas. Python descubre qué tipo quieres según cómo escribas el valor. Nunca declaras un tipo explícitamente.
Texto (str)
Cualquier texto va dentro de comillas, simples o dobles. Las comillas le dicen a Python que quieres caracteres literales, no un nombre de variable. Una vez creada, una cadena no se puede cambiar en su lugar. El capítulo Strings cubre todo lo que puedes hacer con ellas.
nombre_jugador = "María"
ciudad = "México"
mensaje = 'Fin del juego'Si tu texto contiene un apóstrofo, usa comillas dobles para evitar tener que escaparlo:
nota = "Es un gran día"
nota = 'Es un gran día' # mismo resultadoNúmeros enteros (int)
Los números enteros van sin comillas ni punto decimal. Python los llama integers. Pueden ser tan grandes como necesites; Python maneja números arbitrariamente grandes sin ningún esfuerzo especial de tu parte.
puntuacion = 0
edad = 28
poblacion = 8_100_000_000 # los guiones bajos son solo para legibilidad8_100_000_000 están solo para que puedas leerlo. Números decimales (float)
Cualquier número con un punto decimal es un float. Funcionan como se espera para la mayoría de los cálculos. Una cosa a saber: algunos valores decimales no se pueden almacenar exactamente en binario, por lo que puedes obtener un pequeño error de redondeo:
precio = 4.99
temperatura = 36.6
0.1 + 0.2 # 0.30000000000000004Para el trabajo cotidiano esto raramente importa. Para cálculos financieros donde fracciones de centavo cuentan, Python tiene un módulo decimal que lo maneja correctamente. Esto se cubre en el capítulo Numbers.
0.1 + 0.2 da 0.30000000000000004. No es un error, eso es binario. Para dinero, recurre a decimal.Decimal. Verdadero o Falso (bool)
Algunas cosas están encendidas o apagadas. Python usa booleanos para esto: exactamente dos valores, True y False. Parecen menores en esta etapa, pero cada condición y rama en tu programa se ejecuta en un booleano.
esta_conectado = True
hay_errores = FalsePython también trata ciertos valores como si fueran False cuando se usan en una condición: 0, 0.0, "" y None (el "sin valor aquí" de Python) todos se comportan como False. Todo lo demás se comporta como True. Esto se vuelve útil en el capítulo Control flow.
True y False, y están detrás de cada if que jamás escribirás. El bit divertido: 0, "", [] y None todos cuentan como False, todo lo demás cuenta como True. Verificar y convertir tipos
Cuando no estás seguro de qué tipo es un valor, type() te lo dice. Para verificar si un valor es un tipo específico, isinstance() es la herramienta más confiable:
print(type("hello")) # <class 'str'>
print(type(42)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type(True)) # <class 'bool'>
isinstance(42, int) # True
isinstance("hi", str) # TruePython no mezcla tipos automáticamente. Concatenar una cadena y un número produce una TypeError:
puntuacion = 42
print("Tu puntuación es " + puntuacion) # TypeError
print("Tu puntuación es " + str(puntuacion)) # funcionaConvierte explícitamente usando el nombre de tipo como función:
| Llamada | Resultado |
|---|---|
str(42) | "42" |
int(3.9) | 3 (trunca, no redondea) |
float("3.14") | 3.14 |
int("3.14") | ValueError: no se puede convertir una cadena decimal a int directamente |
int(float("3.14")) | 3 (convierte a float primero, luego a int) |
bool(0) / bool("") | False |
type() te dice qué es algo, isinstance() verifica si es un tipo dado. Y Python no pegará una cadena y un número, así que convierte primero con str() o int(). Todos se tropiezan con eso una vez. En la práctica
Los cuatro tipos trabajando juntos en un pequeño script. Las líneas de salida usan f-strings para incrustar valores en texto: coloca f antes de la comilla de apertura e envuelve cualquier variable en {}. Python lo reemplaza con el valor real de la variable. Los aprenderás correctamente en el próximo capítulo.
nombre_jugador = "María"
nivel = 3
precision = 0.94
es_premium = True
print(f"{nombre_jugador} está en el nivel {nivel} con {precision:.0%} de precisión.")
print(f"Cuenta premium: {es_premium}")Los tipos importan porque nivel + 1 funciona y nombre_jugador + 1 no. Cada variable sostiene exactamente una clase de cosa; Python no las mezclará silenciosamente por ti.

