8 · Decisiones con if / elif / else
Ramifica según cualquier condición, mantén el anidamiento bajo y usa expresiones ternarias para casos simples.
`if/elif/else` enruta la ejecución por exactamente una rama — Python evalúa la cadena de arriba a abajo y se detiene en la primera condición verdadera.
Sin esto:
Sin ramificación, todo programa sigue el mismo camino independientemente de la entrada — no puedes clasificar, validar ni reaccionar a los datos.
Una sentencia if de Python elige exactamente un camino a través del código. Escribe las condiciones como expresiones booleanas normales — no necesitas paréntesis. Agrega elif para ramas adicionales y un else opcional captura todo lo que no coincidió.
Python (in browser)
Este es el patrón arquetípico de umbral de clasificación. Cada `elif` refina el rango; el `else` final lo captura todo.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Cuando la lógica es una elección simple de dos caminos, la expresión condicional (ternaria) colapsa todo el if/else en una línea. La forma es valor_si_verdadero if condición else valor_si_falso.
Python (in browser)
Usa el ternario para casos simples. Si necesitas más de dos ramas, quédate con `if/elif/else` — la legibilidad primero.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python 3.10 introdujo match/case — coincidencia de patrones estructural. Brilla cuando necesitas despachar según la forma o el tipo de un valor (por ejemplo, enrutar por nombre de arquitectura de modelo), pero para comprobaciones de umbrales simples if/elif/else sigue siendo la opción idiomática.
¿Es `1 < 2 < 3` una expresión Python válida y qué devuelve?
Ponlo en práctica: el desafío del Arena te pide construir un clasificador de notas con `if/elif/else` y tests del lado del servidor.
- `if/elif/else` evalúa de arriba a abajo y se detiene en la primera rama verdadera — el orden de las condiciones importa.
- El ternario `x if cond else y` es un `if/else` de una línea — úsalo para elecciones simples de dos caminos.
- Prefiere retornos anticipados y diccionarios de búsqueda a bloques `if` profundamente anidados para mantener el código escaneable.
Los umbrales de clasificación (`if prob >= 0.5: label = 1`) son el paso final de todo clasificador binario. Las comprobaciones de early stopping usan `if val_loss > best_loss: patience_counter += 1`. El despacho por tipo de modelo (`if model_type == 'tree': ...`) enruta el entrenamiento al algoritmo correcto.
Si lo quitas: Sin condicionales no puedes ramificar según una probabilidad predicha, detener el entrenamiento anticipadamente o validar entradas — tu pipeline se convierte en una línea recta que ignora todo lo que los datos le dicen.