הצגת התוצאות
שיעור 9 מתוך 11 בקורס מחולל חידונים – פרויקט OOP ב-Python של Coddy.
נטפל בתוצאות הבוחן ונדפיס אותן.
אתגר
בינוניכתבו מתודה print_results בתוך המחלקה Quiz, שמקבלת רשימה של ערכים בוליאניים כקלט (True פירושו שהתשובה לשאלה ה־ith הייתה נכונה) ומדפיסה את התוצאה בפורמט מסוים.
בדקו את מקרי הבדיקה כדי להבין את הפורמט!
נסו בעצמכם
from abc import ABC, abstractmethod
class Question(ABC):
@abstractmethod
def print(self):
pass
@abstractmethod
def check(self, answer):
pass
class YesNoQuestion(Question):
def __init__(self, question, answer):
self.question = question
self.answer = answer
def print(self):
print('[?] ' + self.question + ' (yes/no)')
def check(self, answer):
return (answer == 'yes' and self.answer) or \
(answer == 'no' and not self.answer)
class OpenQuestion(Question):
def __init__(self, question, answers):
self.question = question
self.answers = answers
def print(self):
print('[?] ' + self.question)
def check(self, answer):
return answer in self.answers
class MultiOptionsQuestion(Question):
def __init__(self, question, options, answer_index):
self.question = question
self.options = options
self.answer_index = answer_index
def print(self):
print('[?] ' + self.question)
print()
for i in range(len(self.options)):
print('[' + str(i + 1) + '] ' + self.options[i])
def check(self, answer):
return self.answer_index == int(answer) - 1
class Quiz:
def __init__(self, questions):
self.questions = questions
def start(self):
for question in self.questions:
question.print()
print()
res = question.check(input('[+] '))
print()
print()
כל השיעורים ביחידה מחולל חידונים – פרויקט OOP ב-Python
תרגלו בעצמכם: קומפיילר Python אונליין