Velocity Reviews > and becomes or and or becomes and

# and becomes or and or becomes and

Stef Mientki
Guest
Posts: n/a

 05-22-2011
hello,

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

Thomas 'PointedEars' Lahn
Guest
Posts: n/a

 05-22-2011
Stef Mientki 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

Change the order of the operands and see what happens.

--
PointedEars

Bitte keine Kopien per E-Mail. / Please do not Cc: me.

Terry Reedy
Guest
Posts: n/a

 05-22-2011
On 5/22/2011 5:57 PM, Thomas 'PointedEars' Lahn wrote:
> Stef Mientki 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

>
> Change the order of the operands and see what happens.

or change a,b to 1,2

--
Terry Jan Reedy

Chris Angelico
Guest
Posts: n/a

 05-22-2011
On Mon, May 23, 2011 at 8:39 AM, Tim Roberts <(E-Mail Removed)> wrote:
> That IS funny. *Interesting how a careful choice of arugments will foolus.
> 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".

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

Steven D'Aprano
Guest
Posts: n/a

 05-23-2011
On Sun, 22 May 2011 15:39:33 -0700, Tim Roberts wrote:

> Stef Mientki <(E-Mail Removed)> 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.

--
Steven

rusi
Guest
Posts: n/a

 05-23-2011
On May 23, 5:30*am, Steven D'Aprano <steve
(E-Mail Removed)> wrote:
> On Sun, 22 May 2011 15:39:33 -0700, Tim Roberts wrote:
> > Stef Mientki <(E-Mail Removed)> 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.
>

Ha Ha! [You're hired Steven]

bch
Guest
Posts: n/a

 05-28-2011
On May 23, 11:30*pm, rusi <(E-Mail Removed)> wrote:
> On May 23, 5:30*am, Steven D'Aprano <steve
>
>
>
> (E-Mail Removed)> wrote:
> > On Sun, 22 May 2011 15:39:33 -0700, Tim Roberts wrote:
> > > Stef Mientki <(E-Mail Removed)> 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.

>

>
> Ha Ha! [You're hired Steven]

And of course, a programmer cannot tell the difference between
Halloween and Christmas day.

Chris Angelico
Guest
Posts: n/a

 05-28-2011
On Sat, May 28, 2011 at 10:27 PM, bch <(E-Mail Removed)> wrote:
> 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

Nobody
Guest
Posts: n/a

 05-28-2011
On Sun, 22 May 2011 15:39:33 -0700, Tim Roberts wrote:

> 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);

Chris Angelico
Guest
Posts: n/a

 05-28-2011
On Sat, May 28, 2011 at 11:31 PM, Nobody <(E-Mail Removed)> wrote:
> 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