Variables y tipos
Todo programa necesita recordar cosas. Un cuestionario necesita el nombre del jugador. Un juego necesita la puntuación actual. Un script del clima necesita la ciudad que estás consultando. Python usa variables para esto: nombres que asocias a valores para poder usarlos a lo largo de tu programa.
player_name = "Sofía"
score = 0
city = "Ciudad de México"Tres líneas. Tres cosas que Python ahora recuerda. Usa cualquiera de esos nombres más adelante y Python te devolverá 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 a". Significa almacenar este valor bajo este nombre. Léelo de izquierda a derecha:
city = "Ciudad de México"city obtiene "Ciudad de México". Le estás diciendo a Python: recuerda "Ciudad de México" y etiquétalo como city.
Puedes reemplazar el valor de una variable en cualquier momento. Python simplemente usa el más reciente:
score = 0
score = 10 # score ahora es 10
score = 15 # score ahora es 15Nombrar tus variables
Tú eliges el nombre. Python tiene unas pocas reglas estrictas, y la comunidad sigue convenciones que vale la pena adoptar desde el primer día. Los nombres claros hacen el código legible semanas después. Los nombres crípticos causan dolor.
Reglas que Python impone:
- Solo letras, dígitos y guiones bajos. Sin espacios ni guiones.
- Debe comenzar con una letra o un guion bajo, nunca con un dígito
- Distingue entre mayúsculas y minúsculas:
score,ScoreySCOREson tres variables separadas
Convenciones que todos siguen (PEP 8):
| Cosa | Estilo | Ejemplo |
|---|---|---|
| Variables y funciones | snake_case | user_name, total_price |
| Constantes | UPPER_SNAKE_CASE | MAX_RETRIES, BASE_URL |
| Clases | PascalCase | UserAccount, DataLoader |
# nombres claros, legibles a simple vista
user_name = "Sofía"
total_price = 49.99
is_logged_in = True
MAX_RETRIES = 3
# te arrepentirás de estos en menos de una hora
x = "Sofía"
tp = 49.99
b = TrueUna trampa que vale la pena conocer pronto: no nombres una variable igual que un built-in de Python como list, input, type o print. Python lo permite, pero romperás silenciosamente el built-in durante el resto de ese ámbito y los errores resultantes son difíciles de rastrear.
Qué puedes almacenar
Python tiene cuatro tipos que usarás en casi todos los programas. Python deduce qué tipo quieres decir por cómo escribes el valor. Nunca declaras un tipo explícitamente.
Texto (str)
Cualquier texto va entre comillas, simples o dobles. Las comillas le dicen a Python que te refieres a caracteres literales, no a un nombre de variable. Una vez creada, una cadena no puede cambiarse en su lugar. El capítulo Cadenas cubre todo lo que puedes hacer con ellas.
player_name = "Sofía"
city = "Ciudad de México"
message = 'Juego terminado'Si tu texto contiene un apóstrofo, usa comillas dobles para evitar tener que escaparlo:
note = "It's a great day"
note = 'It\'s a great day' # mismo resultado, usando un escapeNúmeros enteros (int)
Los números enteros se escriben 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.
score = 0
age = 28
population = 8_100_000_000 # los guiones bajos son solo para legibilidadNú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 que debes saber: algunos valores decimales no pueden almacenarse exactamente en binario, por lo que puedes obtener un pequeño error de redondeo:
price = 4.99
temperature = 36.6
0.1 + 0.2 # 0.30000000000000004Para el trabajo cotidiano rara vez importa. Para cálculos financieros donde cuentan las fracciones de centavo, Python tiene un módulo decimal que lo maneja correctamente. Eso se cubre en el capítulo Números.
Verdadero o falso (bool)
Algunas cosas están simplemente encendidas o apagadas. Python usa booleans para esto: exactamente dos valores, True y False. Parecen menores en esta etapa, pero cada condición y bifurcación en tu programa funciona con un booleano.
is_logged_in = True
has_errors = FalsePython también trata ciertos valores como si fueran False cuando se usan en una condición: 0, 0.0, "" y None (el "ningún valor aquí" de Python) se comportan todos como False. Todo lo demás se comporta como True. Esto se vuelve útil en el capítulo Flujo de control.
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 de 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 genera un TypeError:
score = 42
print("Your score is " + score) # TypeError
print("Your score is " + str(score)) # funcionaConvierte explícitamente usando el nombre del tipo como una 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 (convertir a float primero, luego a int) |
bool(0) / bool("") | False |
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 el texto: pon f antes de la comilla de apertura y envuelve cualquier variable en {}. Python lo reemplaza con el valor real de la variable. Las aprenderás correctamente en el próximo capítulo.
player_name = "Sofía"
level = 3
accuracy = 0.94
is_premium = True
print(f"{player_name} is on level {level} with {accuracy:.0%} accuracy.")
print(f"Premium account: {is_premium}")Los tipos importan porque level + 1 funciona y player_name + 1 no. Cada variable contiene exactamente una clase de cosa; Python no las mezclará silenciosamente por ti.

