[Tutor] or synxtax in if statement
Smith, Jeff
jsmith at medplus.com
Fri Aug 31 22:20:05 CEST 2007
That definitely won't work. How could the language possibly determine
if you meant
a == b | a == c
as opposed to the literal
a == b | c
What this becomes is
a == (b | c)
Also be aware that | is a "bitwise or" and not a logical "or" which may
not be what you want. So your original expression may not be what you
want since it will get evaluated as
a == (b | a) == c
Consider the following result:
>>> a=0
>>> b=0
>>> c=1
>>> print a == b | a == c
False
>>> print a == (b | a) == c
False
>>> print (a == b) | (a == c)
True
>>> print a == b | c
False
Although what I suspect you really want is
>>> print a == b or a == c
True
>>> print (a == b) or (a == c)
True
But this means that your shortcut becomes
(a == b) or c
So consider
>>> a=0
>>> b=1
>>> c=0
>>> print a == b or c
0
Which is the same as false.
Jeff
-----Original Message-----
From: tutor-bounces at python.org [mailto:tutor-bounces at python.org] On
Behalf Of David Bear
Sent: Friday, August 31, 2007 3:40 PM
To: tutor at python.org
Subject: [Tutor] or synxtax in if statement
I think I want to be lazy and express this
if a == b | a = c
(if a equal b or a equals c)
using
if a == b | c
it seems to work.. but I'm not sure if it is correct -- and I haven't
seen any documentation on using this type of syntax.
--
--
David Bear
College of Public Programs at Arizona State University
_______________________________________________
Tutor maillist - Tutor at python.org
http://mail.python.org/mailman/listinfo/tutor
More information about the Tutor
mailing list