must of us will not use single bits these days,
but at first sight, this looks funny :
>>> a=2
>>> b=6
>>> a and b
6
>>> a & b
2
>>> a or b
2
>>> a | b
6
cheers,
Stef
> must of us will not use single bits these days,
> but at first sight, this looks funny :
>
>>>> a=2
>>>> b=6
>>>> a and b
> 6
>>>> a & b
> 2
>>>> a or b
> 2
>>>> a | b
> 6
Change the order of the operands and see what happens.
--
PointedEars
Bitte keine Kopien per E-Mail. / Please do not Cc: me.
or change a,b to 1,2
--
Terry Jan Reedy
That IS funny. Interesting how a careful choice of arugments will fool us.
One of my favorite math jokes is like that. A teacher asked a student to
reduce the following fraction:
16
----
64
He says "all I have to do is cancel out the sixes, so the answer is 1/4".
--
Tim Roberts, ti...@probo.com
Providenza & Boekelheide, Inc.
I like. :)
But in the OP, the difference between "and" and "&", or "or" and "|",
is subtle yet absolute. They are completely different operators. The
bitwise operators function like the arithmetic operators - evaluate
both operands, then do something that combines them into one value.
The logical operators, though, are more like the if statement:
q = a and b
is similar to:
if a:
q = a
else:
q = b
(Pedants, please note that I said "similar" not "equivalent".) They
happen to do similar things, but they're completely different in
operation. I do like the humour value from the careful selection of
operands though!
Chris Angelico
> Stef Mientki <stef.m...@gmail.com> wrote:
>>
>>must of us will not use single bits these days, but at first sight, this
>>looks funny :
>>
>>>>> a=2
>>>>> b=6
>>>>> a and b
>>6
>>>>> a & b
>>2
>>>>> a or b
>>2
>>>>> a | b
>>6
>
> That IS funny. Interesting how a careful choice of arugments will fool
> us. One of my favorite math jokes is like that. A teacher asked a
> student to reduce the following fraction:
> 16
> ----
> 64
>
> He says "all I have to do is cancel out the sixes, so the answer is
> 1/4".
One of my favourite variations on this is by Abbott and Costello, where
Costello proves that 13*7 = 28 in three different ways.
http://www.youtube.com/watch?v=rLprXHbn19I
--
Steven
These are the Boolean operations, ordered by ascending priority:
Operation Result Notes
x or y if x is false, then y, else x (1)
x and y if x is false, then x, else y (2)
not x if x is false, then True, else False (3)
The second line is puzzling at first look, but consistent.
It is analogous to the Conditional Expression.
See:
http://docs.python.org/reference/expressions.html#conditional-expressions
Colin W.
Ha Ha! [You're hired Steven]
And of course, a programmer cannot tell the difference between
Halloween and Christmas day.
Well known, of course. But a lot of modern programmers don't speak
octal, they only use another power-of-two base; it's as though
someone's cast a hex on them.
Chris Angelico
> That IS funny. Interesting how a careful choice of arugments will fool us.
> One of my favorite math jokes is like that. A teacher asked a student to
> reduce the following fraction:
> 16
> ----
> 64
>
> He says "all I have to do is cancel out the sixes, so the answer is 1/4".
Not Python, but:
#define SIX 1 + 5
#define NINE 8 + 1
...
printf("six times nine is: %d\n", SIX * NINE);
*AWESOME*!! That is brilliant!
DNA FTW.
ChrisA