Logical Operator and code block not executing (newbie question)
Ben Kaplan
bskaplan14 at yahoo.com
Wed Apr 16 21:13:03 EDT 2008
The problem is that your loop says "while guess != number". When guess is equal to the number, the code in the loop is not executed. Instead, do something like
while guess != number and tries < total_attempts:
if guess > number:
...
elif guess < number:
...
if guess == number :
...
----- Original Message ----
From: python newbie <p.newbie at yahoo.com>
To: python-list at python.org
Sent: Wednesday, April 16, 2008 8:58:10 PM
Subject: Logical Operator and code block not executing (newbie question)
Hello,
I am running into a small problem of not having a code block not executing after after a logical operator is true. What am I missing or doing wrong. Any thoughts or opinions would be greatly appreciated.
The block that isn't being executed follows:
elif (guess == the_number) and (tries < total_attempts):
print "You guessed it! The number was", the_number
print "And it only took you", tries, "tries!\n"
print "The correct answer is: ", the_number
Below is the complete script:
#! /usr/bin/python
# Aurthor: Me
# Purpose: Demonstrates
# Date: April 15, 2008
import random
print "\tWelcome to 'Guess My Number'!"
print "\nI'm thinking of a number between 1 and 100."
print "Try to guess it in as few attempts as possible.\n"
# set the initial values
the_number = random.randrange(100) + 1
guess = int(raw_input("Take a guess: "))
tries = 1
total_attempts = 3
# guessing loop
while (guess != the_number):
if (guess > the_number) and (tries < total_attempts):
print "Lower..."
print "You have...", total_attempts - tries, "left."
print "The correct answer is: ", the_number
elif (guess < the_number) and (tries < total_attempts):
print "Higher..."
print "You have...", total_attempts - tries, "left."
print "The correct answer is: ", the_number
elif (guess == the_number) and (tries < total_attempts):
print "You guessed it! The number was", the_number
print "And it only took you", tries, "tries!\n"
print "The correct answer is: ", the_number
elif (tries >= total_attempts):
print "You're out of guess"
print "You have...", total_attempts - tries, "left."
print "You need more practice."
print "The correct answer is: ", the_number
break
else:
print "You shouldn't see this message..."
print "You have...", total_attempts - tries, "left."
print "The correct answer is: ", the_number
break
guess = int(raw_input("Take a guess: "))
tries += 1
raw_input("\n\nPress the enter key to exit.")
PS: I am new to coding & scripting.
Pete
Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now.
Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now.
____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20080416/9066ef93/attachment-0001.html>
More information about the Python-list
mailing list