Python Forum
Having issues getting a multiple choice test program to work - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: Having issues getting a multiple choice test program to work (/thread-12586.html)



Having issues getting a multiple choice test program to work - Py_JohnS - Sep-01-2018

I have been working on a program that I saw on a tutorial that creates Multiple choice test.

I created a class named Question.
Code for Question:
class Question:
    def _init_(self, prompt, answer):
        self.prompt = prompt
        self.answer = answer
The rest of my code is another file
Rest of Code:

from Question import Question
question_prompts = [
    "What kind of vessel is the Japanese Soryu Class?\n(a) Submarine\n(b) Frigate\n(c) Destroyer\n(d) Cruiser\n\n",
    "What is the primary anti-ship weapon of the US Navy?\n(a) SM2\n(b) SM6\n(c) Sea_Sparrow\n(d) Harpoon\n\n",
    "Name of the new destroyer class in the Chinese PLA Navy?\n(a) Type_45\n(b) Type_52C\n(c) Type_55\n(d) Type_23\n\n"
]

questions = (
    Question(question_prompts[0], "a"),
    Question(question_prompts[1], "d"),
    Question(question_prompts[2], "c"),
)

def run_test(questions):
    score = 0
    for question in questions:
        answer = input(question.prompt)
        if answer == question.answer:
            score += 1
    print("You got " + str(score) + "/" + str(len(question)) + "correct ")

run_test(questions)
When I run the code the following error is created
Error:
Traceback (most recent call last): File "C:/Users/johne/PycharmProjects/untitled/Multiple choice quiz.py", line 9, in <module> Question(question_prompts[0], "a"), TypeError: Question() takes no arguments
I am unsure of what the issue is with the arguments. Any help would be greatly appreciated


RE: Having issues getting a multiple choice test program to work - j.crater - Sep-01-2018

The problem is in your Question() class init method. It should have two trailing underscores on each side, not one:
# your init
def _init_(self, prompt, answer):

# correct init
def __init__(self, prompt, answer):
And next time when you post on the forums, please use Python code tags and error tags. Help is available here.


RE: Having issues getting a multiple choice test program to work - Py_JohnS - Sep-01-2018

Hey guys thanks for the suggestions! You helped me fix my code. I will definitely read up on this stuff.