[Tutor] help understanding part of the tutorial...
Guess Who? Me
beercanz@hotmail.com
Thu Jan 9 03:33:02 2003
Here is the source, which is at
http://www.honors.montana.edu/~jjc/easytut/easytut/node10.html.
test.py
## This program runs a test of knowledge
true = 1
false = 0
# First get the test questions
# Later this will be modified to use file io.
def get_questions():
# notice how the data is stored as a list of lists
return [["What color is the daytime sky on a clear day?","blue"],\
["What is the answer to life, the universe and
everything?","42"],\
["What is a three letter word for mouse trap?","cat"]]
# This will test a single question
# it takes a single question in
# it returns true if the user typed the correct answer, otherwise false
def check_question(question_and_answer):
#extract the question and the answer from the list
question = question_and_answer[0]
answer = question_and_answer[1]
# give the question to the user
given_answer = raw_input(question)
# compare the user's answer to the testers answer
if answer == given_answer:
print "Correct"
return true
else:
print "Incorrect, correct was:",answer
return false
# This will run through all the questions
def run_test(questions):
if len(questions) == 0:
print "No questions were given."
# the return exits the function
return
index = 0
right = 0
while index < len(questions):
#Check the question
if check_question(questions[index]): <<<<problem
right = right + 1
#go to the next question
index = index + 1
#notice the order of the computation, first multiply, then divide
print "You got ",right*100/len(questions),"% right out
of",len(questions)
#now lets run the questions
run_test(get_questions())
I don't understand how this if loop returns a value using true and false - I
know that true=1 and false=0, but I don't get how right=right+1 works out -
does it mean that if the statement returns a false answer, the rest of the
if loop doesn't get carried out? Because it seems to me right=right+1 would
give you a minimum of three right answers, because you asked three questions
- I'm obviously missing some concept, could somebody fill me in?
Thanks!
Travis
_________________________________________________________________
The new MSN 8 is here: Try it free* for 2 months
http://join.msn.com/?page=dept/dialup