Portada de libro electrónico gratuitaPython desde cero con mini-retos: aprende programando (sin teoría eterna)

Python desde cero con mini-retos: aprende programando (sin teoría eterna)

Nuevo curso

12 páginas

Variables, tipos y operaciones para resolver problemas concretos

Capítulo 2

Tiempo estimado de lectura: 4 minutos

+ Ejercicio

Qué es una variable (y por qué te ahorra trabajo)

Una variable es un “nombre” que apunta a un valor. Sirve para guardar datos y reutilizarlos sin copiar/pegar números o textos por todas partes. En Python, creas una variable con = (asignación):

precio = 19.99
cantidad = 3

Piensa en variables como etiquetas: hoy cantidad vale 3, pero mañana puede valer 10 y tu programa seguirá funcionando sin reescribir fórmulas.

Reglas prácticas para nombrar variables

  • Usa nombres descriptivos: precio_unitario mejor que p.
  • Usa snake_case: total_compra, edad_usuario.
  • Evita palabras reservadas (como class, for, if).
  • Evita acentos y ñ en nombres para mantener compatibilidad: anio en vez de año.

Tipos de datos esenciales (los que usarás en mini-retos)

El “tipo” es la categoría del dato. En Python no declaras el tipo por adelantado: se infiere según el valor asignado.

Números: int y float

  • int: enteros (sin decimales). Ej: 5, -2.
  • float: decimales. Ej: 3.14, 19.99.
edad = 28          # int
altura = 1.72      # float

Texto: str

Una cadena de texto va entre comillas simples o dobles.

nombre = "Ana"
mensaje = 'Hola'

Booleanos: bool

Representan verdadero o falso: True y False. Son clave para decisiones (condiciones) y validaciones.

Continúa en nuestra aplicación.

Podrás escuchar el audiolibro con la pantalla apagada, recibir un certificado gratuito para este curso y además tener acceso a otros 5.000 cursos online gratuitos.

O continúa leyendo más abajo...
Download App

Descargar la aplicación

es_mayor_de_edad = True
hay_stock = False

Cómo comprobar el tipo con type()

precio = 19.99
print(type(precio))  # <class 'float'>

Operaciones básicas que resuelven problemas reales

Aritmética: +, -, *, /, //, %, **

  • + suma, - resta, * multiplicación, / división (devuelve float).
  • // división entera (descarta decimales).
  • % módulo (resto de una división).
  • ** potencia.
a = 10
b = 3
print(a / b)   # 3.3333333333333335
print(a // b)  # 3
print(a % b)   # 1
print(2 ** 3)  # 8

Operaciones con texto (str)

Con + concatenas (unes) textos. Con * repites.

nombre = "Ana"
saludo = "Hola, " + nombre
print(saludo)
print("-" * 10)

Importante: no puedes sumar texto con números directamente. Debes convertir.

edad = 28
print("Edad: " + str(edad))

Comparaciones: ==, !=, <, <=, >, >=

Devuelven True o False. Útiles para validar reglas: “¿alcanza el dinero?”, “¿hay stock?”, “¿está dentro del rango?”.

dinero = 50
precio = 19.99
print(dinero >= precio)  # True

Operadores lógicos: and, or, not

tiene_descuento = True
es_cliente_nuevo = False
aplica_promo = tiene_descuento and (not es_cliente_nuevo)
print(aplica_promo)

Conversión de tipos (cuando el dato viene “con el tipo equivocado”)

En mini-retos es común recibir números como texto (por ejemplo, desde input()). Para operar, conviértelos:

  • int("12") convierte a entero.
  • float("12.5") convierte a decimal.
  • str(12) convierte a texto.
texto = "12"
numero = int(texto)
print(numero + 5)  # 17

Si el texto no representa un número válido, la conversión fallará. En retos posteriores verás cómo manejar esos casos con validaciones.

Mini-reto 1: Calculadora de total con impuestos (paso a paso)

Problema: tienes un precio unitario, una cantidad y un impuesto (IVA). Quieres calcular el total final.

Paso 1: Define las variables

precio_unitario = 19.99
cantidad = 3
iva = 0.21

Paso 2: Calcula el subtotal

subtotal = precio_unitario * cantidad

Paso 3: Calcula el impuesto y el total

impuesto = subtotal * iva
total = subtotal + impuesto

Paso 4: Muestra resultados (con redondeo)

En dinero, suele interesar 2 decimales.

print("Subtotal:", round(subtotal, 2))
print("Impuesto:", round(impuesto, 2))
print("Total:", round(total, 2))

Variación práctica

Si el impuesto viene como porcentaje (por ejemplo 21), conviértelo a decimal:

iva_porcentaje = 21
iva = iva_porcentaje / 100

Mini-reto 2: Dividir una cuenta entre personas (y detectar sobrantes)

Problema: una cuenta total se divide entre N personas. Quieres saber cuánto paga cada una y cuánto sobra si solo puedes pagar en unidades enteras (por ejemplo, monedas de 1).

Paso 1: Variables

total = 53
personas = 4

Paso 2: Calcula pago entero y sobrante

pago_por_persona = total // personas
sobrante = total % personas

Paso 3: Imprime el resultado

print("Cada persona paga:", pago_por_persona)
print("Sobra:", sobrante)

Idea: // te da la parte “repartible” y % te dice lo que no se pudo repartir.

Mini-reto 3: Convertidor de unidades (temperatura)

Problema: convertir grados Celsius a Fahrenheit.

Fórmula: F = C * 9/5 + 32

Paso a paso

celsius = 20
fahrenheit = celsius * 9/5 + 32
print(fahrenheit)

Hazlo más “usable” con entrada y conversión

celsius_texto = input("Celsius: ")
celsius = float(celsius_texto)
fahrenheit = celsius * 9/5 + 32
print("Fahrenheit:", fahrenheit)

Fíjate en la conversión: input() devuelve texto, por eso usamos float().

Errores típicos (y cómo evitarlos rápido)

1) Confundir = con ==

  • = asigna: x = 3
  • == compara: x == 3

2) Mezclar str con números

precio = 10
# print("Precio: " + precio)  # Error
print("Precio: " + str(precio))

3) Divisiones y redondeos inesperados

/ siempre devuelve decimal. Si necesitas enteros, usa //. Para mostrar dinero, usa round(valor, 2).

4) Nombres poco claros

Si tu variable se llama x, en 10 minutos no recordarás qué era. Usa nombres que expliquen el dato: total_con_iva, pago_por_persona.

Ahora responde el ejercicio sobre el contenido:

Al dividir una cuenta total entre varias personas y solo poder pagar en unidades enteras, ¿qué combinación de operadores permite calcular cuánto paga cada persona y cuánto sobra?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

La división entera // obtiene la parte repartible sin decimales (pago por persona) y el operador % devuelve el resto que no se pudo repartir (sobrante).

Siguiente capítulo

Control de flujo con condicionales y validación de datos

Arrow Right Icon
Descarga la aplicación para obtener una certificación gratuita y escuchar cursos en segundo plano, incluso con la pantalla apagada.