[Python] python 3 - domande vaie

Marco Beri marcoberi a gmail.com
Mer 2 Gen 2013 11:15:45 CET


2013/1/2 Valerio Pachera <sirio81 a 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
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130102/c90f2e6a/attachment.html>


Maggiori informazioni sulla lista Python