oop개념과 퀴즈 프로젝트

data.py


question_data = [
    {"text": "세계에서 제일 처음으로 텔레비전 방송을 시작한 나라는 영국이다.", "answer": "예"},
    {"text": "말도 잠을 잘 때는 사람과 같이 코를 곤다.", "answer": "예"},
    {"text": "게의 다리는 모두 10개이다.", "answer": "예"},
    {"text": "벼룩은 암컷과 수컷 가운데 수컷의 몸집이 더 크다.", "answer": "아니오"},
    {"text": "아라비아 숫자 1부터 100사이에는 9라는 숫자가 모두 19개 들어 있다.", "answer": "아니오"},
    {"text": "열대 지방에 자라는 나무에는 나이테가 없다.", "answer": "예"},
    {"text": "밀물과 썰물 현상은 하루 3번씩 일어난다.", "answer": "아니오"},
    {"text": "물고기도 기침을 한다.", "answer": "예"},
    {"text": "사슴뿔은 평생 1번만 난다.", "answer": "아니오"},
    {"text": "고래는 쉼 5M 이하의 물 속에서 잠을 잔다.", "answer": "아니오"},
    {"text": "원숭이에게도 지문이 있다.", "answer": "예"},
    {"text": "육상 선수가 한쪽 발에만 운동화를 신고 경기할 수 없다.", "answer": "아니오"},
    {"text": "남극에도 우편번호가 있다.", "answer": "아니오"},
    {"text": "닭도 왼발잡이 , 오른발잡이가 있다.", "answer": "예"},
    {"text": "한국 돌고래와 미국 돌고래는 말이 통한다.", "answer": "아니오"}
]

question_model.py


class Question:
    def __init__(self, q_text, q_answer) -> None:
        self.text = q_text
        self.answer = q_answer


quiz_brain.py


class QuizBrain:

    def __init__(self, q_list) -> None:
        self.q_number = 0
        self.quizzlist = q_list
        self.point = 0

    def still_have_question(self):
        if self.q_number < len(self.quizzlist):
            return True
        else :
            return False

    def check_answer(self, user_answer, current_question):
        if user_answer == current_question.answer :
            self.point += 1
            return print("맞았습니다.")

        else:
            return print("틀렸습니다.")


    def next_question(self):
        current_question = self.quizzlist[self.q_number] #q_number에 해당되는 질문과 답 리스트를 cureent_question에 저장
        self.q_number += 1
        user_answer = input(f"Q. {self.q_number}. {current_question.text}? (예/아니오) : ")
        return self.check_answer(user_answer, current_question)

main.py


from data import question_data
from question_model import Question
from quiz_brain import QuizBrain

question_bank = []

for quiz in question_data :
    s_quiz = Question(quiz["text"], quiz["answer"])
    question_bank.append(s_quiz)

s_brain = QuizBrain(question_bank)

while s_brain.still_have_question():
    s_brain.next_question()


print(f"당신의 최종 점수 : {s_brain.point}")
# print("question_bank 리스트에 date의 질문과 답이 메모리에 저장")
# print(question_bank)
# print(len(question_bank))
# print("question_bank의 0번 인덱스에 들어가 있는 질문과 답을 출력")

# for i in range(0, len(question_bank)):
#     print(f"{i}번 문제 : {question_bank[i].text}")
#     print(question_bank[i].answer)