Last active
December 29, 2021 03:56
-
-
Save Jithender5913/288c10ed292d2ab0b50ff0fd97c8c25c to your computer and use it in GitHub Desktop.
Quiz Project Using Python OOP
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from question_model import Question | |
| from data import question_data | |
| from quiz_brain import QuizBrain | |
| question_bank = [] | |
| for question in question_data: | |
| question_text = question["text"] | |
| question_answer = question["answer"] | |
| new_question = Question(q_text=question_text, q_answer=question_answer) | |
| question_bank.append(new_question) | |
| quiz = QuizBrain(question_bank) | |
| while quiz.still_has_questions(): | |
| quiz.next_question() | |
| print("You have completed the quiz") | |
| print(f"Your final score was: {quiz.score}/ {quiz.question_number}") | |
| class QuizBrain: | |
| def __init__(self,q_list): | |
| self.question_number = 0 | |
| self.score = 0 | |
| self.question_list = q_list | |
| def still_has_questions(self): | |
| if self.question_number < len(self.question_list): | |
| return True # instead of True or False, we can simply write return self.question_number < | |
| # len(self.question_list) | |
| else: | |
| return False | |
| def next_question(self): | |
| current_question = self.question_list[self.question_number] | |
| self.question_number += 1 | |
| user_answer = input(f"Q.{self.question_number}:{current_question.text} (True/False)") | |
| self.check_answer(user_answer, current_question.answer) | |
| def check_answer(self, user_answer, correct_answer): | |
| if user_answer.lower() == correct_answer.lower(): | |
| self.score += 1 | |
| print("You got it right") | |
| else: | |
| print("That's wrong") | |
| print(f"The correct answer was: {correct_answer}") | |
| print(f"Your current score is: {self.score}/{self.question_number}") | |
| print("\n") | |
| class Question: | |
| def __init__(self, q_text, q_answer): | |
| self.text = q_text | |
| self.answer = q_answer | |
| question_data = [ | |
| {"text": "A slug's blood is green.", "answer": "True"}, | |
| {"text": "The loudest animal is the African Elephant.", "answer": "False"}, | |
| {"text": "Approximately one quarter of human bones are in the feet.", "answer": "True"}, | |
| {"text": "The total surface area of a human lungs is the size of a football pitch.", "answer": "True"}, | |
| {"text": "In West Virginia, USA, if you accidentally hit an animal with your car, you are free to take it home to " | |
| "eat.", "answer": "True"}, | |
| {"text": "In London, UK, if you happen to die in the House of Parliament, you are entitled to a state funeral.", | |
| "answer": "False"}, | |
| {"text": "It is illegal to pee in the Ocean in Portugal.", "answer": "True"}, | |
| {"text": "You can lead a cow down stairs but not up stairs.", "answer": "False"}, | |
| {"text": "Google was originally called 'Backrub'.", "answer": "True"}, | |
| {"text": "Buzz Aldrin's mother's maiden name was 'Moon'.", "answer": "True"}, | |
| {"text": "No piece of square dry paper can be folded in half more than 7 times.", "answer": "False"}, | |
| {"text": "A few ounces of chocolate can to kill a small dog.", "answer": "True"} | |
| ] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment