Joseph Quigley said unto the world upon 2005-04-14 10:46:

<SNIP>

>Do you see? The == "binds more tightly" than the or. And, in python, 'Q' is
>considered True for the purposes of tests.

<SNIP>

 >What you can do instead is this:
 >
 >for letter in prefixes:
 >    if letter in ['O', 'Q']:
 >        print letter + 'u' + suffix
 >    else:
 >        print letter + suffix

Oh, ok. Sorry, my bad :)
So there is a special use for ==. I must look into this.
Thanks,
    Joe

Hi Joe,

I'm not sure what you mean by a "special use", but maybe this will help:

In arithmetic:

4 * 10 + 2 = 42

as

( 4 * 10 + 2 ) = ( ( 4 * 10 ) + 2 )

This is because '*' comes before '+' in the oder of operations when parenthesis don't settle the issue. One way to express that is to say "'*' binds more tightly than '+'".

In Python '==' binds more tightly than 'or'. So:

( a == b or c ) == ( ( a == b ) or c )

Hence:
>>> 42==0 or True
True
>>> 42 == 0 or 42 == True
False
>>> # Better is
>>> 42 in (0, True)
False
>>>

Does that help?

Best,

Brian vdB

_______________________________________________
Tutor maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to