Lección 2 de 12 · Nivel 1: Básico
Variables, tipos de datos y operadores en Python
En esta lección
- Crear variables con buenos nombres.
- Usar los tipos básicos: int, float, str, bool y None.
- Convertir entre tipos y redondear.
- Operar con operadores aritméticos, de comparación y lógicos.
Los programas trabajan con datos: nombres, precios, fechas, listas de productos. Para guardarlos y reutilizarlos usamos variables. En esta lección aprenderás a crearlas, los tipos de datos básicos de Python y los operadores para hacer cálculos y comparaciones.
Qué es una variable
Una variable es un nombre que apunta a un valor guardado en memoria. Se crea con el signo = (que en programación significa "asignar", no "es igual"):
nombre = "Lucía"
edad = 29
precio = 49.90
activo = True
print(nombre)
print(edad + 1)
A diferencia de otros lenguajes, en Python no tienes que declarar el tipo: lo deduce del valor. Y una variable puede cambiar de valor durante el programa:
stock = 10
stock = stock - 3
print(stock) # 7
Si quieres repasar la diferencia entre variables y constantes en programación, tenemos un artículo sobre variables y constantes. En Python, por convención, las constantes se escriben en mayúsculas: IMPUESTO = 0.18.
Reglas para nombrar variables
- Pueden tener letras, números y guion bajo, pero no pueden empezar con un número.
- Distinguen mayúsculas:
edadyEdadson variables distintas. - No pueden ser palabras reservadas como
if,for,class,True. - La convención en Python es snake_case: minúsculas y palabras separadas por guion bajo (
precio_total,fecha_de_pago). - Usa nombres que expliquen el contenido:
total_ventases mejor quetvox.
Los tipos de datos básicos
| Tipo | Nombre en Python | Ejemplos | Para qué |
|---|---|---|---|
| Entero | int | 42, -7, 0 | Cantidades, contadores, edades |
| Decimal | float | 3.14, 49.90 | Precios, medidas, porcentajes |
| Texto | str | "Hola", 'Lima' | Nombres, mensajes, códigos |
| Booleano | bool | True, False | Condiciones: sí/no |
| Nulo | NoneType | None | Ausencia de valor |
Fíjate en que los decimales se escriben con punto, no con coma: 49.90. Puedes consultar el tipo de cualquier valor con type():
print(type(29)) # <class 'int'>
print(type(49.90)) # <class 'float'>
print(type("29")) # <class 'str'>
Ojo con el último: "29" entre comillas es texto, no un número. No puedes sumarlo con 1.
1. ¿De qué tipo es el valor 3.5?
Los números con decimales son float; los enteros, int; los textos entre comillas, str.
Convertir entre tipos
int("29") # 29 (texto → entero)
float("49.90") # 49.9 (texto → decimal)
str(29) # "29" (número → texto)
int(9.99) # 9 (corta los decimales, no redondea)
round(9.99) # 10
round(94.39999, 2) # 94.4
Convertir es imprescindible cuando el dato viene de un usuario o de un archivo, porque casi siempre llega como texto (lo verás en la próxima lección con input()).
2. ¿Qué devuelve "5" + "3"?
Son textos: + los une. Para sumar, conviértelos antes: int("5") + int("3") = 8.
Operadores aritméticos
| Operador | Operación | Ejemplo | Resultado |
|---|---|---|---|
+ | Suma | 7 + 2 | 9 |
- | Resta | 7 - 2 | 5 |
* | Multiplicación | 7 * 2 | 14 |
/ | División (siempre da float) | 7 / 2 | 3.5 |
// | División entera | 7 // 2 | 3 |
% | Resto (módulo) | 7 % 2 | 1 |
** | Potencia | 7 ** 2 | 49 |
El operador % es más útil de lo que parece: n % 2 == 0 te dice si un número es par. Más detalles y el orden de evaluación en nuestra guía de operadores aritméticos. Para raíces cuadradas, mira cómo calcular la raíz cuadrada en Python.
Operadores de asignación abreviados
total = 100
total += 20 # equivale a total = total + 20 → 120
total -= 5 # 115
total *= 2 # 230
3. ¿Qué devuelven 17 // 5 y 17 % 5?
// es la división entera (17 entre 5 cabe 3 veces) y % es el resto (17 − 15 = 2).
Operadores de comparación y lógicos
Comparan valores y devuelven True o False. Son la base de las decisiones que verás en la lección 4:
edad = 20
print(edad >= 18) # True
print(edad == 20) # True (== compara; = asigna)
print(edad != 30) # True (distinto)
print(edad > 18 and edad < 65) # True
print(edad < 18 or edad > 65) # False
print(not True) # False
Python permite incluso encadenar comparaciones: 18 <= edad < 65. Si quieres profundizar en and, or y not, revisa nuestra guía de operadores lógicos.
x = 5 guarda 5 en x. x == 5 pregunta si x vale 5. Confundirlos dentro de un if provoca un error de sintaxis o un resultado inesperado.
Ejemplo completo: calculadora de precio final
IMPUESTO = 0.18
precio_base = 250.0
descuento = 0.10
precio_con_descuento = precio_base * (1 - descuento)
impuesto = precio_con_descuento * IMPUESTO
precio_final = precio_con_descuento + impuesto
print("Precio con descuento:", precio_con_descuento)
print("Impuesto:", round(impuesto, 2))
print("Total a pagar:", round(precio_final, 2))
Resultado: 225.0, 40.5 y 265.5. Observa que print() acepta varios valores separados por comas y los muestra con un espacio entre ellos.
Ejercicio práctico
- Crea variables para el sueldo mensual (2.300) y los gastos fijos (1.450) de una persona.
- Calcula cuánto le sobra al mes y qué porcentaje de su sueldo representa.
- Calcula cuántos meses necesita para ahorrar 5.000 si guarda todo lo que le sobra (usa división entera y después la normal; ¿cuál tiene más sentido?).
- Muestra si el ahorro mensual es mayor o igual al 20% del sueldo (True/False).
Ver solución
sueldo = 2300
gastos = 1450
sobrante = sueldo - gastos # 850
porcentaje = sobrante / sueldo * 100 # 36.95...
print("Sobra:", sobrante)
print("Porcentaje:", round(porcentaje, 1), "%")
print(5000 // sobrante) # 5 → se queda corto
print(5000 / sobrante) # 5.88 → necesita 6 meses
print(sobrante >= sueldo * 0.20) # True
La división entera dice 5, pero con 5 meses no llega: en la práctica necesita 6. Para "redondear hacia arriba" se usa math.ceil(), que verás más adelante.
Resumen
- Las variables se crean con
=y su nombre va en snake_case. - Tipos básicos:
int,float,str,bool,None. - Convierte con
int(),float(),str(); redondea conround(). /divide con decimales,//divide entero,%da el resto;==compara.
En la próxima lección: Cadenas de texto (strings), f-strings e input() en Python. Verás índices, slicing, métodos de texto, f-strings con formato y cómo pedir datos al usuario.
Crea tu cuenta, marca tus avances y descarga el certificado al terminar el curso.