Lección 2 de 12 · Nivel 1: Básico

Variables, tipos de datos y operadores en Python

En esta lección
  1. Qué es una variable
  2. Los tipos de datos básicos
  3. Convertir entre tipos
  4. Operadores aritméticos
  5. Operadores de comparación y lógicos
  6. Ejemplo completo: calculadora de precio final
  7. Resumen
Lo que lograrás 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: edad y Edad son 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_ventas es mejor que tv o x.

Los tipos de datos básicos

TipoNombre en PythonEjemplosPara qué
Enteroint42, -7, 0Cantidades, contadores, edades
Decimalfloat3.14, 49.90Precios, medidas, porcentajes
Textostr"Hola", 'Lima'Nombres, mensajes, códigos
BooleanoboolTrue, FalseCondiciones: sí/no
NuloNoneTypeNoneAusencia 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?

  • int
  • float
  • str

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"?

  • 8
  • "53"
  • Un error

Son textos: + los une. Para sumar, conviértelos antes: int("5") + int("3") = 8.

Operadores aritméticos

OperadorOperaciónEjemploResultado
+Suma7 + 29
-Resta7 - 25
*Multiplicación7 * 214
/División (siempre da float)7 / 23.5
//División entera7 // 23
%Resto (módulo)7 % 21
**Potencia7 ** 249

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?

  • 3 y 2
  • 3.4 y 2
  • 2 y 3

// 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.

El error más común: = frente a ==

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

  1. Crea variables para el sueldo mensual (2.300) y los gastos fijos (1.450) de una persona.
  2. Calcula cuánto le sobra al mes y qué porcentaje de su sueldo representa.
  3. 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?).
  4. 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 con round().
  • / 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.

¿Quieres tu certificado gratis?

Crea tu cuenta, marca tus avances y descarga el certificado al terminar el curso.

Inscribirme gratis