Why does this not work?
Sandeep Gupta
sandeep182 at hotmail.com
Tue Jan 7 02:27:31 EST 2003
"Tetsuo" <member16943 at dbforums.com> wrote in message
news:2355358.1041918087 at dbforums.com...
> s = 0
> c = 0
> def halfadder(a, b):
> if a and b in (0, 1):
> if a and b == 1:
> s = 1
> c = 0
> print s, c
> elif a and b == 0:
> s = 0
> c = 0
> print s, c
> else:
> s = 0
> c = 1
> print s, c
> else:
> print "Number out of range! Enter 0 or 1, please."
>
> halfadder(1,1)
> halfadder(1,0)
> halfadder(0,1)
> halfadder(0,0)
Your if statements need to be changed to:
if (a in (0,1)) and (b in (0.1))
if (a == 1) and (b == 1):
elif (a == 0) and (b == 0):
You may not need the parens, but I like it for clarity.
The problem is
elif a and b == 0:
gets parsed as
elif (a) and (b == 0):
so the condition is true if a is non-zero and b is zero.
More information about the Python-list
mailing list