파이썬 미니 프로젝트(16)
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)