question_data=[{"category":"Science: Computers","type":"boolean","difficulty":"easy","question":"Linus Torvalds created Linux and Git.","correct_answer":"True","incorrect_answers":["False"]},{"category":"Science: Computers","type":"boolean","difficulty":"easy","question":"Pointers were not used in the original C programming language; they were added later on in C++.","correct_answer":"False","incorrect_answers":["True"]},{"category":"Science: Computers","type":"boolean","difficulty":"easy","question":"RAM stands for Random Access Memory.","correct_answer":"True","incorrect_answers":["False"]},{"category":"Science: Computers","type":"boolean","difficulty":"easy","question":"Ada Lovelace is often considered the first computer programmer.","correct_answer":"True","incorrect_answers":["False"]},{"category":"Science: Computers","type":"boolean","difficulty":"easy","question":"HTML""stands for Hypertext Markup Language.","correct_answer":"True","incorrect_answers":["False"]},{"category":"Science: Computers","type":"boolean","difficulty":"easy","question":"In most programming languages, the operator ++ is equivalent to the statement "+= 1".","correct_answer":"True","incorrect_answers":["False"]},{"category":"Science: Computers","type":"boolean","difficulty":"easy","question":"Time on Computers is measured via the EPOX System.","correct_answer":"False","incorrect_answers":["True"]},{"category":"Science: Computers","type":"boolean","difficulty":"easy","question":"The NVidia GTX 1080 gets its name because it can only render at a 1920x1080 screen resolution.","correct_answer":"False","incorrect_answers":["True"]},{"category":"Science: Computers","type":"boolean","difficulty":"easy","question":"Linux was first created as an alternative to Windows XP.","correct_answer":"False","incorrect_answers":["True"]},{"category":"Science: Computers","type":"boolean","difficulty":"easy","question":"The Python programming language gets its name from the British comedy group Monty Python","correct_answer":"True","incorrect_answers":["False"]},]
question_model.py(Create class Question, initialize class, create methods and attributes).
classQuizBrain:def__init__(self,q_list):self.question_list=q_listself.question_number=0self.question_score=0defstill_has_questions(self):returnself.question_number<len(self.question_list)defnext_question(self):current_question=self.question_list[self.question_number]self.question_number+=1user_answer=input(f"{self.question_number}: {current_question.text} (True/False)?: ")self.check_answer(user_answer,current_question.answer)defcheck_answer(self,user_answer,correct_answer):ifuser_answer.lower()==correct_answer.lower():self.question_score+=1print("You got it right! ")else:print("That's wrong! ")print(f"The correct answer was {correct_answer}. ")print(f"Your current score is {self.question_score}/{self.question_number}. ")print("\n")
main.py
fromquestion_modelimportQuestionfromdataimportquestion_datafromquiz_brainimportQuizBrainquestion_bank=[]forquestioninquestion_data:question_text=question["question"]question_answer=question["correct_answer"]new_question=Question(q_text=question_text,q_answer=question_answer)question_bank.append(new_question)quiz=QuizBrain(question_bank)whilequiz.still_has_questions():quiz.next_question()print(f"Congratulations, you've completed the quiz. Your final score is {quiz.question_score}/{quiz.question_number}. ")
Top comments (0)
Subscribe
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)