From: <co...@ph...> - 2002-06-12 17:47:06
|
At some point, Geza Groma <gr...@nu...> wrote: > Using Numeric-21.0.win32-py2.2 I found this: > > Python 2.2.1 (#34, Apr 9 2002, 19:34:33) [MSC 32 bit (Intel)] on win32 > Type "help", "copyright", "credits" or "license" for more information. >>>> from Numeric import * >>>> a = array((1, 1), 'b') >>>> b = array((1, 0), 'b') >>>> a and b > array([1, 0],'b') >>>> b and a > array([1, 1],'b') >>>> > > It looks like a bug, or at least very weird. a&b and b&a work correctly. Nope. From the Python language reference (5.10 Boolean operations): The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned. Since in your case both a and b are true (they aren't zero-length sequences, etc.), the last value will be returned. It works for other types too, of course: Python 2.1.3 (#1, May 23 2002, 09:00:41) [GCC 3.1 (Debian)] on linux2 Type "copyright", "credits" or "license" for more information. >>> a = 'This is a' >>> b = 'This is b' >>> a and b 'This is b' >>> b and a 'This is a' >>> -- |>|\/|< /--------------------------------------------------------------------------\ |David M. Cooke |co...@mc... |