Estoy confundido sobre cómo Python evalúa las declaraciones booleanas.Operaciones booleanas
Por ej.
False and 2 or 3
retornos 3
¿Cómo se evalúa esto? Pensé que Python primero mira 'False and 2', y devuelve False sin siquiera mirar 'o 3'. ¿Cuál es el orden de lo que Python ve aquí?
Otra es:
1 or False and 2 or 2 and 0 or 0
devuelve 1
De lo que he reunido desde el primer ejemplo, pensé Python evaluaría de izquierda a derecha, por lo que '1 o Falso' devolvería 1, a continuación, '1 y 2' devolverían 2, luego '2 o 2' devolverían los primeros 2, luego '2 y 0' devolverían 0, luego '0 o 0' devolverían el segundo 0.
Como pueden Dile que estoy bastante perplejo, ¡por favor ayuda!
Gracias!
Ah, así que cualquier comparación con y debe incluirse entre paréntesis. Eso tiene mucho más sentido. ¿Cómo supo hacer (1 o (((Falso y 2) o (2 y 0)) o 0)) en lugar de (1 o (Falso y 2) o (2 y 0) o 0)? – kkSlider
@kkSlider Solo si necesita cambiar el orden de precedencia, o quiere hacerlo más claro, al igual que en las matemáticas normales. El exceso de horquillado hará que su código sea menos claro. En cuanto a tu ejemplo. es una cuestión de cuál es la lógica para su situación. –
@kkSlider: No tiene por qué ser así si no quiere hacer cumplir un cierto orden. Pero tiene que hacerlo si desea evaluar la expresión como 'False and (2 or 3)'. * editar: * lo que dijo @Lattyware :) –