Bienvenida: enseñarle a decidir
En la Clase 1 aprendiste a guardar información en variables. Hoy damos el salto más importante: que el programa tome decisiones solo. Que reaccione distinto según lo que pase.
Eso se llama condicional: «SI pasa esto, ENTONCES hacé aquello». Es la base de todo: videojuegos, apps, semáforos, cajeros... todo está lleno de decisiones.
Pensá en un paraguas. La regla en tu cabeza es: si está lloviendo, entonces lo llevo; si no, lo dejo en casa. Tu cerebro evalúa una condición (¿llueve?) y elige un camino. Hoy le enseñamos a Python a hacer exactamente eso.
Lo que vas a poder hacer al terminar
Comparar valores
Saber si algo es mayor, menor o igual a otra cosa.
Usar if / elif / else
Hacer que el programa elija entre varios caminos.
Combinar condiciones
Unir reglas con and, or y not.
Crear un mini programa
Un portero que decide quién entra a la fiesta.
Antes de programar, pensemos como una máquina. Hacé clic en los pasos en el orden correcto para decidir si cruzar la calle:
¿Verdadero o falso? Los booleanos
Antes de decidir, una computadora necesita responder preguntas de sí o no. En Python esas respuestas tienen un tipo de dato propio llamado bool (booleano), y solo puede tener dos valores:
Ojo: se escriben con mayúscula inicial y sin comillas. True es el booleano; "True" sería solo un texto.
tengo_hambre = True es_de_noche = False print(tengo_hambre) # True print(type(es_de_noche)) # <class 'bool'>
Toda condición que escribas se «traduce» en tu cabeza a un único True o False. El programa nunca decide a medias: o se cumple, o no.
Operadores de comparación
Para obtener un True o False comparamos valores. Estos son los 6 operadores de comparación de Python:
edad = 18 asigna (guarda) el valor.
edad == 18 pregunta si son iguales.
Un = guarda. Dos == preguntan. Confundirlos es el error nº1 de quien empieza.
Escribí dos números y mirá qué responde cada operador (cada fila es un True o False):
if: la primera decisión
La palabra if significa «si» (de condición). Su forma es siempre la misma:
if condición: # termina en dos puntos : hacé_esto # va INDENTADO (4 espacios)
Dos detalles que Python exige sí o sí:
- La línea del
iftermina en dos puntos: - Lo que pasa «adentro» va indentado (con 4 espacios o un Tab). Esa sangría es la que le dice a Python «esto es parte del if».
edad = 20 if edad >= 18: print("Sos mayor de edad") print("Podés votar")
Podés votar
Si edad fuera 15, la condición daría False y Python saltearía todo el bloque indentado: no imprime nada.
El portero deja pasar solo a mayores de 18. Cambiá la edad y mirá qué camino toma el programa:
else y elif: caminos alternativos
Un if solo cubre el caso «sí». Para decir «si no, hacé otra cosa» usamos else:
edad = 15 if edad >= 18: print("Pasá, podés entrar") else: print("Lo siento, sos menor")
¿Y si hay más de dos caminos? Ahí entra elif (abreviatura de «else if», o sea «si no, en cambio si...»). Podés encadenar todos los que quieras:
nota = 8 if nota >= 9: print("Sobresaliente") elif nota >= 7: print("Notable") elif nota >= 5: print("Aprobado") else: print("Suspenso")
Python revisa las condiciones de arriba hacia abajo y se queda con la primera que sea True. Las demás ni las mira. Por eso el orden importa: lo más exigente va primero.
Para clasificar una nota, ¿en qué orden deben ir las condiciones? Tocalas de la más exigente a la menos exigente:
Cambiá el valor de edad y ejecutá. Este editor entiende if, elif, else, comparaciones y print().
and, or, not: combinar condiciones
A veces una sola condición no alcanza. ¿Qué pasa si querés exigir dos cosas a la vez? Para eso están los operadores lógicos:
edad = 20 tiene_entrada = True if edad >= 18 and tiene_entrada: print("Bienvenido al recital 🎸") else: print("No podés pasar")
Con and hay que cumplir todo; con or alcanza con una. Esta es la tabla de la verdad, el corazón de la lógica:
Encendé o apagá los dos interruptores y elegí un operador. Mirá el resultado:
and es exigente (quiere todo), or es conformista (con uno le basta), y not es el contrario (siempre dice lo opuesto).
Lógica en Scratch 🐱
La lógica de los condicionales es la misma en cualquier lenguaje. Antes (o además) de escribir código, entrenar el cerebro con bloques de colores en Scratch hace que todo se entienda mucho más rápido. Cada bloque naranja «si... entonces» es exactamente un if.
El bloque de Scratch «si <...> entonces / si no» es idéntico al if / else de Python. Y el rombo verde «<...> y <...>» es el and. ¡Mismas ideas, distinto vestido!
Abrí scratch.mit.edu y resolvé estos retos. Todos se basan en condicionales:
Hacé que el gato pregunte tu edad y responda distinto según tu respuesta.
- Usá el bloque «preguntar [¿Qué edad tenés?] y esperar».
- Agregá un bloque «si <respuesta > 17> entonces».
- Adentro: «decir [Sos grande 😎]». En el «si no»: «decir [Sos joven 🐣]».
Un disfraz de semáforo que cambia de color y el gato decide qué hacer.
- Creá una variable color que cambie entre «rojo» y «verde».
- «si <color = verde> entonces → avanzar 10 pasos».
- Agregá un «si no, si <color = rojo>» → decir «¡Frená!». (¡Eso es un
elif!)
Combiná DOS condiciones con el rombo verde «y» (el and de Python).
- Preguntá la edad y guardala. Preguntá «¿tenés entrada? (si/no)».
- Usá «si <<edad > 12> y <respuesta = si>> entonces».
- Si se cumple: «¡Bienvenido!». Si no: «No podés jugar». Probá cambiando las respuestas.
Mini quiz: ¿qué aprendiste?
Respondé sin mirar arriba. Cada pregunta te dice al toque si acertaste.
1. ¿Cuál operador pregunta si dos valores son iguales?
2. edad = 10. ¿Qué imprime if edad >= 18: print("hola")?
3. if True and False: — ¿la condición es...?
4. ¿Qué palabra usás para «si no, en cambio si...»?
Proyecto del día 🚀
Juntemos todo en un solo programa: el portero del boliche. Decide si alguien puede entrar combinando varias condiciones.
Reglas del local: para entrar hay que tener 18 o más y tener entrada. Los de 65 o más entran gratis.
edad = 22 y tiene_entrada = Trueif edad >= 18 and tiene_entrada:elif edad >= 65: → entra gratiselse: → "No podés pasar"Ahora te toca: escribí el portero vos solo, siguiendo la guía de los 4 pasos. Sin mirar ninguna solución — para eso está la pista de cada paso. 💪
Repasaste
Booleanos, comparación, if/elif/else y and/or/not.
Practicaste
Lógica con bloques de Scratch y juegos.
Sigue
Clase 3: bucles, para repetir tareas sin copiar y pegar.
Desafío: programá al robot 🤖
El gran final, al estilo CodeCombat: tu código es el cerebro del robot. No le das una lista de movimientos: le das reglas. En cada paso el robot lee la situación (dónde está, dónde hay paredes) y tu condicional decide hacia dónde ir. El objetivo: llegar a la ⭐.
El robot ejecuta tu código una vez por paso y repite hasta llegar a la meta. Vos solo escribís el «si pasa esto → andá para allá». (Quién repite esos pasos es un bucle... eso lo programás vos en la Clase 3 😉).
Variables que podés leer
x,y— tu posiciónmeta_x,meta_y— dónde está la ⭐pared_arriba·pared_abajopared_izquierda·pared_derecha—True/False
Tu misión
Asigná a mover una dirección: "arriba", "abajo", "izquierda", "derecha" o "quieto".
Estás usando todo lo de la clase: variables (x, y), comparación (<, >, ==), if/elif/else y lógica booleana (los sensores pared_* son True/False, combinalos con and, or, not).
Lo lograste
Programaste el comportamiento de un personaje con condicionales.
Pensaste en reglas
No diste pasos sueltos: diste lógica que se adapta sola.
Sigue
Clase 3: los bucles, el motor que repite los pasos.
Proyecto final de la semana 🧮
Este es tu desafío para la semana: armá una calculadora en Python. No hay solución acá — la idea es que la pienses vos, con todo lo que aprendimos. La traés terminada para la próxima clase.
Una calculadora que le pide al usuario dos números y una operación, y según cuál elija, hace la cuenta. Vas a usar input() (Clase 1) + if / elif / else (Clase 2). 🔗
Tu programa tiene que:
- Pedir el primer número y guardarlo (acordate de convertir con
float()). - Pedir el segundo número.
- Preguntar qué operación hacer:
+,-,*o/. - Con
if / elif / else, decidir la cuenta según el símbolo elegido. - Mostrar el resultado con un
print()lindo (usá una f-string).
Te dejo el esqueleto (completá los TODO)
Copialo, pegalo en tu editor de Python y completá las partes que faltan. Te dejo una operación de ejemplo; las demás van por tu cuenta. 😉
# Calculadora — completá los TODO num1 = float(input("Primer número: ")) num2 = float(input("Segundo número: ")) op = input("Operación (+, -, *, /): ") if op == "+": resultado = num1 + num2 print(f"El resultado es {resultado}") # TODO: elif op == "-": → restar # TODO: elif op == "*": → multiplicar # TODO: elif op == "/": → dividir (¡ojo con dividir por 0!) # TODO: else: → "Operación no válida"
Retos extra (para subir nota ⭐)
División segura
Antes de dividir, con un if revisá que num2 no sea 0. Si lo es, avisá en vez de romper.
Operación inválida
Si escriben algo que no es + - * /, que el else muestre un mensaje claro.
Mensaje completo
Mostrá la cuenta entera, ej: 7.0 + 4.0 = 11.0, con una f-string.
¿Cómo lo pruebo? Corré el archivo en tu compu con python calculadora.py, o pegalo en un editor online como online-python.com. Probá las 4 operaciones y la división por 0.
Las 4 operaciones funcionan, dividir por 0 no rompe el programa, y si la operación no existe avisa con un mensaje. ¡Llevalo a la próxima clase y lo revisamos juntos! 🚀