El mayor de tres
Devolvé el más grande de los tres números a, b y c. Ejemplo: mayor_de_tres(40, 90, 12) → 90
Entrá y llevá tu progreso —ejercicios, medallas y Pokémon— a cualquier dispositivo. 🔄
Si tu cuenta ya tiene progreso guardado, se carga ese al entrar.
Entraste como . Tu progreso se sincroniza solo. 🔄
Devolvé el más grande de los tres números a, b y c. Ejemplo: mayor_de_tres(40, 90, 12) → 90
🎯 Meta: que tu programa tome decisiones y repita cosas. Hasta ahora tu código corría en línea recta. Ahora va a poder elegir caminos y dar vueltas.
En una batalla Pokémon, vos tomás decisiones todo el tiempo: “SI el rival es de tipo Agua, USO un ataque Eléctrico”. Y repetís acciones: “MIENTRAS el rival tenga HP, sigo atacando”.
Eso es exactamente el control de flujo: decirle al programa cuándo hacer algo (decisiones) y cuántas veces hacerlo (repeticiones).
if ejecuta un bloque de código solo si una condición es verdadera.
nivel = 30
if nivel >= 25:
print("¡Tu Pokémon puede evolucionar!")
⚠️ La indentación importa. El código “adentro” del if va con 4 espacios de sangría. Python usa esa sangría para saber qué está adentro y qué afuera. No es decorativo: es obligatorio.
P: ¿Qué es lo que hace que el código adentro de un `if` se ejecute?
- Que la línea empiece con cuatro espacios
+ Que la condición sea verdadera (`True`)
- Que la variable no sea `None`
> La indentación le dice a Python qué código está "adentro", pero ese código solo se ejecuta si la condición del `if` es `True`.
Sirven para construir condiciones. Devuelven True o False:
| Operador | Significa | Ejemplo | Resultado |
|---|---|---|---|
== | igual a | nivel == 25 | True si nivel es 25 |
!= | distinto de | tipo != "Agua" | True si no es Agua |
> | mayor que | hp > 0 | True si hp es positivo |
< | menor que | nivel < 100 | |
>= | mayor o igual | nivel >= 25 | |
<= | menor o igual | hp <= 0 |
⚠️ Ojo: = asigna (guarda en una variable), == compara. ¡No los confundas!
nivel = 25 # asignación: guardo 25 en nivel
nivel == 25 # comparación: ¿nivel es igual a 25? → True
else es el “si no”. elif (“else if”) agrega más condiciones a chequear.
hp = 40
if hp > 70:
print("Tu Pokémon está sano 💚")
elif hp > 30:
print("Tu Pokémon está cansado 💛")
elif hp > 0:
print("¡Tu Pokémon está grave! ❤️")
else:
print("Tu Pokémon se debilitó 💀")
Python revisa las condiciones de arriba hacia abajo y entra en la primera que sea verdadera. Las demás las ignora.
Combinan varias condiciones:
and → verdadero si ambas son verdaderas.or → verdadero si al menos una es verdadera.not → invierte (verdadero ↔ falso).nivel = 30
tipo = "Fuego"
# Evoluciona SI tiene nivel suficiente Y es de fuego.
if nivel >= 25 and tipo == "Fuego":
print("¡Charmander evoluciona a Charmeleon!")
# Es fuerte SI es legendario O tiene nivel 100.
if es_legendario or nivel == 100:
print("¡Pokémon poderoso!")
# Puede pelear SI NO está debilitado.
if not debilitado:
print("¡A la batalla!")
while repite un bloque mientras una condición sea verdadera. Es el bucle de “seguí hasta que…”.
hp_rival = 100
while hp_rival > 0:
print(f"Atacás. HP del rival: {hp_rival}")
hp_rival = hp_rival - 20 # bajamos el HP en cada vuelta
print("¡Ganaste la batalla! 🏆")
⚠️ ¡Cuidado con los bucles infinitos! Si la condición nunca se vuelve falsa, el programa nunca termina. Asegurate de que algo cambie adentro del while (acá, el HP baja).
for recorre una secuencia de valores, uno por uno. Es el bucle de “para cada…“.
# Recorre una lista de Pokémon (las listas las vemos a fondo más adelante).
equipo = ["Pikachu", "Charizard", "Snorlax"]
for pokemon in equipo:
print(f"Tengo a {pokemon}")
range() genera una secuencia de números, ideal para repetir N veces.
# Repite 5 veces (del 0 al 4).
for i in range(5):
print(f"Lanzamiento de Pokéball número {i + 1}")
# range(inicio, fin): del 1 al 10 (el 'fin' NO se incluye).
for nivel in range(1, 11):
print(f"Nivel {nivel}")
# range(inicio, fin, paso): de 0 a 100 de 10 en 10.
for hp in range(0, 101, 10):
print(hp)
💡 Recordá: range(5) da 0, 1, 2, 3, 4 (empieza en 0, termina antes del 5).
P: ¿Qué imprime `range(3)` si lo recorrés con `for i in range(3): print(i)`?
- 1, 2, 3
- 0, 1, 2, 3
+ 0, 1, 2
> `range(3)` genera los números del 0 al 2 (tres números). El límite final NO se incluye.
Controlan el bucle desde adentro:
break → corta el bucle por completo.continue → saltea el resto de esta vuelta y pasa a la siguiente.# break: dejamos de buscar al encontrar a Mewtwo.
for pokemon in equipo:
if pokemon == "Mewtwo":
print("¡Encontramos a Mewtwo!")
break # salimos del for inmediatamente
# continue: salteamos a los Pokémon debilitados.
for pokemon in equipo:
if pokemon == "debilitado":
continue # saltamos a la próxima vuelta
print(f"{pokemon} entra a la batalla")
# if / elif / else: decisiones
if hp > 50:
print("sano")
elif hp > 0:
print("herido")
else:
print("debilitado")
# Comparadores: ==, !=, >, <, >=, <=
# Lógicos: and, or, not
if nivel >= 25 and tipo == "Fuego":
print("evoluciona")
# while: repetir mientras una condición sea verdadera
while hp > 0:
hp -= 20
# for + range: repetir N veces
for i in range(5):
print(i)
# break corta el bucle; continue saltea una vuelta
| Concepto | Para qué sirve |
|---|---|
if/elif/else | Elegir qué código correr |
==, !=, >, < | Comparar valores |
and, or, not | Combinar condiciones |
while | Repetir mientras algo sea cierto |
for + range() | Repetir una cantidad de veces |
break | Cortar el bucle |
continue | Saltar a la próxima vuelta |
Ahora practicá: andá a los ejercicios de este tema y resolvelos. Se corrigen al instante con tests reales en tu navegador. 💪
⚡ “En la batalla y en el código, las buenas decisiones ganan combates.”