It’s quiz time!
Having flashbacks of pop quizzes in school? Well, you don’t have to worry about a sudden test of your knowledge. For now, you can read about one. After receiving another great Python — related programming assignment, I created a true and false quiz!
Paul Zhao, who happens to be one of the coaches at Level Up in Tech, has a very inspiring “Python 100 projects in 100 days — Learning Journal.” While closely following the model of his Python quiz project, I made few modifications to the instructions for my rendition of an impromptu test.
Materials
· An Integrated Developer Environment [IDE] of your choice [For this project, I used PyCharm.].
· Instructions and Scripts from Zhao’s Python Quiz Project, which we will modify to suit our preferences.
· An Open Trivia DB account to access and select a question and answer [Q & A] data bank for our quiz.
Step 1. Create the Question Class
In your preferred IDE,
create the first Python file needed for this project, question_model.py. This file will contain the function for the Question
class.
The text is designated as q_text
and the answer is represented with q_answer
.
Step 2. Create the List of Question Objects from the Data
Create the project’s second python file, entitled
main.py. This file will contain an empty list, represented by the[ ]
symbols. We will define this empty list as question_bank
. We will assign the values of text and answer in the third and fourth lines of the code. On the fifth line, we will bring in the new question.
We continue to build out the code question_data
by assigning text
to question_text
and answer
to question_answer
. This code
also includes, new_question
which allows for the addition [or to “append”] new questions to the question bank.
Step 3. Generate the QuizBrain file
For this project, we will need to create a third file, quiz_brain.py with the following code:
In this part of the code, we use the self.question_number
and the self.score
values, both of which have been set to 0. On the
last line, self.question_list
is equated to q_list
.
P. Zhao’s instructions direct us to go back to main.py and revise the code by adding an additional line at the end. This new line will link the question_bank
to QuizBrain. So, that’s what we’ll do.
quiz = QuizBrain[question_bank]
We need to return to quiz_brain.py to complete entering the code needed for our project. Here’s what we need to type to continuously draw new questions:
Step 4. Implement Continuous Question and Answer Delivery
Let’s revisit the quiz_brain.py file and add the following code to what we’ve already created:
We also need to add more code to “main.py”:
The addition of these lines in quiz_brain.py and main.py play a critical part of this project. The return self.question_number < len[self.question_list]
and quiz.next_question[]
both allow for the creation of a loop that will continuously feed the questions and answers until the quiz concludes. Our quiz will consist of 10 questions and their respective answers.
Step 5. Verifying Answers and Score Keeping
Type the following code in the end of the quiz_brain.py file:
The check_answer[]
function permits comparison between the user’s input against the actual, correct answer provided in the answer bank. With each new and correct answer [both conditions must be met], the user’s score [“self.score”]
increases
by one point and the “You got it right!”
response appears. In contrast, an incorrect user entry prompts “That’s wrong!”
as a reply.
We will also add this new code to the end of the main.py file:
Step 6. Selecting Questions and Answers from Open Trivia DB
In this step, we need to go to Open Trivia DB to select a questions and answers [Q & A] set to supply the data for our quiz. After selecting your Q & A set, go to the “data.py” file in our project. While I selected a computer science general knowledge set, choose any subject matter you want to use for your quiz. In “data.py”, enter the following:
The data from our selected Q & A set will go in between the [ ]
on the first line.
We need to review our code in all four files before running it. See the following PyCharm screenshots of my entered code:
The initial run was not successful. After 30 minutes of troubleshooting, I figured out the problem. I forgot to add three very important lines in main.py:
Without the information in this code, we cannot import the Q & A data nor the functions in question_model.py and “quiz_brain.” Let’s go ahead and correct this error.
Now that we’ve determined and resolved the problem, we’ll make another attempt at running our code and see what happens.
After learning a little more about Python and conducting a tad of troubleshooting, we have successfully operated our Python — powered quiz.
You can use this model to create a quiz on any subject that you choose. This project displays Python’s versatility and ease-of-use for a variety of programmers.
On to the next challenge!