On Jan 6, 2009, at 7:18 PM, bowman.jos...@gmail.com wrote:

Hi,

I'm trying to write a multi-conditional while statement, and am having
problems. I've broken it down to this simple demo.

#!/usr/bin/python2.5

condition1 = False
condition2 = False

while not condition1 and not condition2:
   print 'conditions met'
   if condition1:
       condition2 = True
   condition1 = True


As I understand it, this should print 'conditions met' twice, however,
it only prints it once. It seems that once condition1 is made true,
the whole thing evaluates as true and stops the while loop.


Think it through.

At the outset:
while (not condition1) and (not condition2) ==>
while (not False) and (not False) ==>
while True and True ==>
while True

After it's been through the loop once:
while (not condition1) and (not condition2) ==>
while (not True) and (not False) ==>
while False and True ==>
while False


Change the "and" to an "or" and you'll get the result you expected.




--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to