Sono confuso su come Python valuta le istruzioni booleane.Operazioni booleane
Per es.
False and 2 or 3
restituisce 3
Come viene valutato questo? Pensavo che Python prima guardasse 'False and 2' e restituisse False senza nemmeno guardare 'o 3'. Qual è l'ordine di ciò che Python vede qui?
Un altro è:
1 or False and 2 or 2 and 0 or 0
restituisce 1
Da quello che ho raccolto dal primo esempio, ho pensato Python valuterà da sinistra a destra, in modo da '1 o Falso' sarebbe tornato 1, quindi '1 e 2' restituirebbero 2, quindi '2 o 2' restituirebbero il primo 2, quindi '2 e 0' restituirebbero 0, quindi '0 o 0' restituirebbero il secondo 0.
Come è possibile dimmi che sono abbastanza perplesso qui, per favore aiuto!
Grazie!
Ah quindi qualsiasi confronto con e dovrebbe essere racchiuso tra parentesi. Cosi ha molto piu senso. Come sapevi fare (1 o (((False e 2) o (2 e 0)) o 0)) invece di (1 o (False e 2) o (2 e 0) o 0)? – kkSlider
@kkSlider Solo se è necessario modificare l'ordine di precedenza o renderlo più chiaro, proprio come nella normale matematica. Il bracketing eccessivo renderà il tuo codice meno chiaro. Per quanto riguarda il tuo esempio. è una questione di quale sia la logica per la tua situazione. –
@kkSlider: non deve essere se non si desidera applicare un determinato ordine. Ma deve se vuoi valutare l'espressione come 'False e (2 o 3)'. * modifica: * cosa @Lattyware ha detto :) –