Newbie question related to Boolean in Python

Dave Angel davea at davea.name
Thu Sep 5 16:47:35 EDT 2013


On 5/9/2013 16:08, skwyang93 at gmail.com wrote:

> 1.      bear_moved = False
> 2.     
> 3.      while True:
> 4.        next = raw_input("> ")
> 5.    
> 6.        if next == "take honey":
> 7.            dead("The bear looks at you then slaps your face off.")
> 8.        elif next == "taunt bear" and not bear_moved:
> 9.            print "The bear has moved from the door. You can go through."
> 10.	    
> 11.            bear_moved = True
> 12.	 elif next == "taunt bear" and bear_moved:
> 13.	     dead("The bear gets pissed off and chews your leg off.")
> 14.	 elif next == "open door" and bear_moved:
> 15.	    gold_room()
> 16.	 else:
> 17.	     print "I got no idea what that means.
>

Please indent by 4, not 2 characters.  It's very hard to see what's
lined up with what.  And that's compounded by having the line numbers
there so that the first 9 lines are shifted left.

> # This is just to show my understanding of Boolean. In line 8-9, if my input is "taunt bear", the result is true and true, which will continue the loop.

Those lines have compound if conditions.  Line 8 will be true/true
only the first time you type "taunt bear".  Notice the operator "not" in
front of bear_moved.

>
> # So what confused me is line 12-13. if my input is taunt bear, is it suppose to be taunt bear == "taunt bear" and bear_moved which is true and true? which means the loop will continue instead of cancelling it.

Line 12 will be true/true only if you've already run line 11.  Since
bear_moved = False initially, the only way you get true /true here is by
answering "taunt bear" twice.

>
> Thanks in advance for spending your time to answer my question. 
> Source: Learnpythonthehardway

-- 
DaveA





More information about the Python-list mailing list