Operadores y condicionales en Python: lógica correcta antes que código rápido

Aprende a construir decisiones fiables con operadores relacionales, lógicos y estructuras `if/elif/else` sin ambigüedades.

Las decisiones en software no son detalles menores: un condicional mal planteado puede romper reglas de negocio enteras.

En Python combinas operadores de comparación (`==`, `!=`, `>`, `<`, `>=`, `<=`) con operadores lógicos (`and`, `or`, `not`).

El orden de condiciones importa; debes priorizar los casos más específicos o más críticos primero.

`if/elif/else` expresa ramas mutuamente excluyentes de forma legible y mantenible.

  • Toda condición bien escrita termina evaluando a `True` o `False`.
  • Comparar correctamente evita ambigüedad. Por ejemplo, `edad >= 18` comunica claramente una regla de acceso.
  • Evita condiciones confusas como dobles negaciones innecesarias: la legibilidad es parte de la corrección.
  • En revisiones de código, las condiciones son uno de los puntos con más defectos de lógica.
  • Cada rama debe tener un propósito y un rango de valores claro.

1) Operadores de comparación y resultado booleano

Toda condición bien escrita termina evaluando a `True` o `False`.

Comparar correctamente evita ambigüedad. Por ejemplo, `edad >= 18` comunica claramente una regla de acceso.

Evita condiciones confusas como dobles negaciones innecesarias: la legibilidad es parte de la corrección.

En revisiones de código, las condiciones son uno de los puntos con más defectos de lógica.

2) Diseñar ramas `if/elif/else` sin solapamientos

Cada rama debe tener un propósito y un rango de valores claro.

Si un caso puede caer en dos ramas diferentes, tienes un problema de diseño lógico.

Empieza por condiciones más restrictivas y termina con `else` como caso residual controlado.

Cuando la lógica crece, conviene extraerla a función para poder testearla de forma aislada.

  • Evita ramas repetidas con la misma condición.
  • No dejes casos frontera sin cubrir.
  • Usa nombres de función que describan la decisión.
  • Testea valores límite (`5`, `7`, `9`, etc.).

3) Precedencia lógica y uso de paréntesis

Si hay duda de lectura, usa paréntesis explícitos.

`not` tiene precedencia distinta a `and` y `or`; cuando mezcles operadores, prioriza claridad sobre brevedad.

Es mejor una condición un poco más larga pero inequívoca, que una corta difícil de razonar.

Paréntesis bien puestos evitan errores de interpretación tanto para Python como para humanos.

Python
04

Operadores y condicionales en Python: lógica correcta antes que código rápido

Aprende a construir decisiones fiables con operadores relacionales, lógicos y estructuras `if/elif/else` sin ambigüedades.

Código del tema: Automatizacion y codigo legible en Python

📘 Teoría

1) Operadores de comparación y resultado booleano

Toda condición bien escrita termina evaluando a `True` o `False`.

1

Comparar correctamente evita ambigüedad. Por ejemplo, `edad >= 18` comunica claramente una regla de acceso.

2

Evita condiciones confusas como dobles negaciones innecesarias: la legibilidad es parte de la corrección.

3

En revisiones de código, las condiciones son uno de los puntos con más defectos de lógica.

Comparaciones básicas
edad = 20
activo = True

puede_entrar = edad >= 18 and activo
print(puede_entrar)  # True

2) Diseñar ramas `if/elif/else` sin solapamientos

Cada rama debe tener un propósito y un rango de valores claro.

Si un caso puede caer en dos ramas diferentes, tienes un problema de diseño lógico.

Empieza por condiciones más restrictivas y termina con `else` como caso residual controlado.

Cuando la lógica crece, conviene extraerla a función para poder testearla de forma aislada.

  • Evita ramas repetidas con la misma condición.
  • No dejes casos frontera sin cubrir.
  • Usa nombres de función que describan la decisión.
  • Testea valores límite (`5`, `7`, `9`, etc.).
Clasificación por tramos
def clasificar_nota(nota: float) -> str:
    if nota >= 9:
        return 'sobresaliente'
    elif nota >= 7:
        return 'notable'
    elif nota >= 5:
        return 'aprobado'
    return 'suspenso'

print(clasificar_nota(7.8))

3) Precedencia lógica y uso de paréntesis

Si hay duda de lectura, usa paréntesis explícitos.

1

`not` tiene precedencia distinta a `and` y `or`; cuando mezcles operadores, prioriza claridad sobre brevedad.

2

Es mejor una condición un poco más larga pero inequívoca, que una corta difícil de razonar.

3

Paréntesis bien puestos evitan errores de interpretación tanto para Python como para humanos.

Condición compleja legible
es_admin = False
es_editor = True
cuenta_verificada = True

puede_publicar = (es_admin or es_editor) and cuenta_verificada
print(puede_publicar)

🧪 Aprende probando

Ejemplo Ejemplo: reglas de descuento por perfil Decisión de negocio con varias ramas claras y ordenadas.

🏁 Retos

Reto Reto: completar tramo intermedio Añade la rama faltante para no colapsar dos estados distintos en un mismo resultado.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre Python.

Test de Python

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .