Variables, condiciones y bucles: la lógica de la programación
Los cinco conceptos que usarás en cualquier lenguaje, con ejemplos que puedes ejecutar en Python.
Da igual el lenguaje que elijas: casi todos los programas se construyen con las mismas piezas. Si entiendes variables, tipos de datos, condiciones, bucles y funciones, podrás leer código en Python, JavaScript, Java o C# aunque cambie la forma de escribirlo. Los ejemplos están en Python porque se lee casi como el inglés; pruébalos en el modo interactivo (escribe python en la terminal) o en un archivo .py.
Variables y tipos de datos
Una variable es un nombre que guarda un valor para usarlo después:
nombre = "Lucía" # texto (str)
edad = 17 # número entero (int)
altura = 1.68 # número decimal (float)
es_socia = True # verdadero o falso (bool)
El tipo importa: no es lo mismo el número 17 que el texto "17". 17 + 1 da 18, pero "17" + "1" da "171", porque con textos el + los une. Para convertir entre tipos se usan int(), float() y str().
Elige nombres que expliquen lo que guardan (precio_total mejor que x). Tu yo de dentro de un mes te lo agradecerá.

Condiciones: tomar decisiones
Con if, elif (si no, si…) y else el programa elige qué hacer:
nota = 6.5
if nota >= 9:
print("Sobresaliente")
elif nota >= 5:
print("Aprobado")
else:
print("Suspenso")
Los comparadores son == (igual, con dos signos), != (distinto), <, >, <= y >=. Se combinan con and, or y not. Fíjate en los dos puntos y en la sangría: en Python, las líneas con sangría son las que pertenecen a cada caso.
Bucles: repetir sin copiar y pegar
El bucle for recorre una secuencia elemento a elemento:
compra = ["pan", "leche", "huevos"]
for producto in compra:
print("Comprar:", producto)
for numero in range(1, 6): # del 1 al 5 (el 6 no se incluye)
print(numero * 2)
El bucle while repite mientras se cumpla una condición, y sirve cuando no sabes cuántas vueltas habrá:
saldo = 100
while saldo > 0:
saldo -= 30
print("Quedan", saldo)
Cuidado con los bucles infinitos: si la condición nunca deja de cumplirse, el programa no termina. Se detiene con Ctrl+C en la terminal.
Listas y diccionarios: guardar muchos datos
Una lista guarda varios valores en orden y se accede a ellos por posición, empezando en 0:
notas = [7, 5.5, 9]
notas.append(8) # añade al final
print(notas[0]) # 7, el primero
print(len(notas)) # 4 elementos
print(sum(notas) / len(notas)) # la media
Un diccionario guarda pares clave-valor, como una ficha:
alumno = {"nombre": "Lucía", "curso": "1.º DAM", "nota": 8.2}
print(alumno["curso"])

Funciones: no repetirte
Una función agrupa unas instrucciones con un nombre para reutilizarlas. Recibe datos (parámetros) y puede devolver un resultado con return:
def precio_con_iva(precio, iva=21):
return round(precio * (1 + iva / 100), 2)
print(precio_con_iva(100)) # 121.0
print(precio_con_iva(100, 10)) # 110.0
Si te ves copiando el mismo bloque de código dos o tres veces, conviértelo en una función. Así, si hay un fallo, lo arreglas en un solo sitio.
Pon todo junto
Un pequeño ejercicio que usa todo lo anterior: pide notas hasta que el usuario escriba «fin» y muestra la media.
def media(valores):
return sum(valores) / len(valores)
notas = []
while True:
texto = input("Nota (o 'fin'): ")
if texto == "fin":
break
notas.append(float(texto))
if notas:
print(f"Media: {media(notas):.2f}")
else:
print("No has introducido ninguna nota.")
Prueba a escribir una letra en lugar de una nota: el programa fallará con un ValueError. Aprender a leer y prevenir ese tipo de errores es el siguiente paso, en la guía de depurar errores. Y si quieres ver estas mismas ideas en la web, sigue con JavaScript.
Fuentes consultadas
- Una introducción informal a Python (Python Software Foundation)
- Más herramientas para control de flujo (Python Software Foundation)
