[Python] 0 in (False,) // 0 == False
Daniele Varrazzo
piro a develer.com
Gio 4 Feb 2010 13:15:37 CET
On Thu, 4 Feb 2010 10:26:40 +0100, Alessandro Dentella <sandro a e-den.it>
wrote:
> Mi viene qui di da chiedermi: ma che bisogno c'è che un booleano erediti
> da
> un intero? piace a tutti che "0 == False" sia vero?
A me piace... e mi piace ancora di più che 1 == True! In questo modo un
modo rapido per sapere quanti True hai in un insieme è sommare i valori
logici tra loro. O fare giochini tipo:
In [1]: def leggi_lati_triangolo():
...: return map(int, raw_input().split())
...:
In [2]: a, b, c = leggi_lati_triangolo()
3 4 4
In [3]: {0: 'scaleno', 1: 'isoscele', 3: 'equilatero'}[(a == b) + (b == c)
+ (a == c)]
Out[3]: 'isoscele'
In calcolo numerico si usa spesso moltiplicare una matrice numerica per
una matrice di booleani: la semplice moltiplicazione restituisce una
matrice che contiene solo i valori numerici corrispondenti ai "vero" dei
booleani. Perché dovrebbe essere più facile fare queste operazioni in C che
in Python? ;)
--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
Maggiori informazioni sulla lista
Python