# This program runs a test of knowledge

#First get the questions
#Later this will be modified to use file io
def get_questions():
    #Notice how the data is stored in a list of lists
    return [["What color is the daytime sky on a clear day? ", "blue"],
                ["What i 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
    #This function takes a list with two elements, a question and an answer
    question = question_and_answer[0]
    answer = question_and_answer[1]
    #give the question to the user
    given_answer = 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 fuction
        return
    index = 0
    right = 0
    while index < len(questions):
        #Check the question
        #Note that this is extracting a question and answer list from the lists of lists
        if check_question(questions[index]):
             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 let's get the questions from the get_questions function, and send the returned list
#of lists as an argument to the run_test function

run_test(get_questions())

Hello again, I'm sorry for asking so many stupid questions but in this program I keep getting a syntax error right at the end (run_test(get_questions())). Does anyone know why this is?

Thanks.

incorrect line is actually previous line, replace it with

print("You got", right * 100 / len(questions),"% right out of", len(questions))
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.