next up previous contents
Next: Iterazione (while, e for) Up: Controllo del flusso Previous: Controllo del flusso   Indice

Connettivi logici

Quando si ha a che fare con il controllo di un flusso, si ha bisogno di identificare valori booleani che rappresentano vero (= 1) e falso (=0). Nell'esempio precedente sign(-0.12) ha trovato la prima condizione falsa mentre verificava la seconda. In Python qualsiasi oggetto è vero eccetto lo zero e gli assegnamenti nulli (None, [], {}).

Esistono poi i connettivi logici or, and e not, la cui tavola di verità è rappresentata in Tabella [*], dove si può vedere come agisce la negazione (not) sulle variabili x e y che possono essere o vere (1) o false (0). L'operatore or, è vero quando almeno una delle due variabili è vera, mentre l'operatore and lo è soltanto se entrambe sono vere. Cosa molto importante è la negazione di una congiunzione o di una disgiunzione. È infatti verificabile che

In Tabella [*] è mostrata solo una delle due, come esercizio verificare anche la seconda eguaglianza.


    
Tabella: Tavola di verità dei connettivi and, or e not
x y not x not y x and y x or y not(x or y) (not x) and (not y)
0 0 1 1 0 0 1 1
0 1 1 0 0 1 0 0
1 0 0 1 0 1 0 0
1 1 0 0 1 1 0 0

Possiamo a questo punto utilizzare i connettivi logici per il controllo del flusso, per esempio se vogliamo calcolare $z=log(x/y)$ dobbiamo considerare $x/y \ge 0$ il che si verifica quando $x$ e $y$ hanno lo stesso segno, inoltre sappiamo che non si può dividere per zero, per cui bisogna richiedere anche $y>0$. Uno spezzone di codice potrebbe essere quindi

if (x>=0 and y >0) or (x<=0 and y < 0):
    z=log(x/y)


next up previous contents
Next: Iterazione (while, e for) Up: Controllo del flusso Previous: Controllo del flusso   Indice
2004-11-02