Condiciones anidadas

Una condición puede estar anidada dentro de otra. Podríamos haber escrito ası́ el ejemplo anterior:

La condición externa que contiene dos ramas. La primera rama contiene una
sentencia simple de salida. La segunda rama contiene otra sentencia if, que tiene dos ramas en sı́ misma. Estas dos ramas son ambas sentencias de salida de datos, aunque podrían ser igualmente sentencias condicionales.

Aunque la indentación de las sentencias hace la estructura evidente, las condiciones anidadas en seguida se vuelven difíciles de leer. En general es una buena idea evitarlas tanto como se pueda.

Los operadores lógicos suelen facilitar un modo de simplificar las sentencias condicionales anidadas. Por ejemplo, podemos reescribir el código siguiente con un sólo condicional:

La sentencia print sólo se ejecuta si conseguimos superar ambas condiciones, ası́ que podemos usar el operador and:

Estos tipos de condiciones son habituales, por lo que Python nos proporciona una sintaxis alternativa similar a la notación matemática:

Esta condición es semánticamente la misma que la expresión booleana compuesta y que el condicional anidado.