2013/1/2 Valerio Pachera <siri...@gmail.com>

> Grazie per le risposte precedenti.
> Ho notato una cosa, valida anche per python 2 che prima non sapevo:
> si può scrivere in costrutto if senza passare 'or' o 'and'
>   if x !=2 !=5 == 4:
>     print ('vero)
> Se non erro, sono legati da and logico.
>

Sì ma non come hai capito tu!
A parte che diventa tutto illeggibile, prova questo:
>>> x=3
>>> x!=2!=2
False

In realtà l'istruzione qui sopra equivale a:
>>> x!=2 and 2!=2
False

e non a:
>>> x!=2 and x!=2
True

Non mi spiego questo però:
>
> >>> x = 3
>
> >>> if x < 7 <5:
> ...     print ('vero')
> ...
>

Perché in realtà stai facendo:

>>> x<7 and 7<5
False

Perchè ha importanza l'ordine delle disequazioni nel primo if e non nel
> terzo?
>

Dovrebbe essere chiaro adesso ma se così non fosse leggiti:
http://docs.python.org/3.1/library/stdtypes.html#comparisons

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a