Le operazioni booleane hanno la priorit� pi� bassa rispetto a tutte le operazioni di Python:
expression |
::= | or_test | lambda_form |
or_test |
::= | and_test | or_test "or" and_test |
and_test |
::= | not_test | and_test "and" not_test |
not_test |
::= | comparison | "not" not_test |
lambda_form |
::= | "lambda" [parameter_list]: expression |
Nel contesto delle operazioni booleane, ed anche quando le espressioni
vengono usate dal flusso di controllo delle istruzioni, i seguenti
valori vengono interpretati come falso: None, il numero zero in
tutti i tipi, sequenze vuote (stringhe, tuple e liste) e mappe vuote
(dizionari). Tutti gli altri valori vengono interpretati come vero.
Gli operatori not producono True se il proprio
argomento � falso, altrimenti producono False.
L'espressione x and y valuta prima x; se
x � falso viene restituito il suo valore; altrimenti viene
valutata y e viene restituito il valore risultante.
L'espressione x or y valuta prima x; se
x � vero viene restituito il suo valore; altrimenti viene
valutato y e viene restituito il valore risultante.
(Da notare che n� and e n� or limitano il valore e
il tipo che restituiscono come False o True, ma
piuttosto restituiscono l'ultimo argomento valutato. Questo � utile
in certe occasioni, per esempio se s � una stringa che dovrebbe
essere sostituita con un valore predefinito se vuota, l'espressione
s or 'foo' produce il valore desiderato. Dato che
not non inventa comunque un valore, la restituzione di un
valore dello stesso tipo del proprio argomento non confonde, cos� per
esempio, not 'foo' produce False, non ''.)
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.