Menu
Coddy logo textTech

שאלה פתוחה

שיעור 5 מתוך 11 בקורס מחולל חידונים – פרויקט OOP ב-Python של Coddy.

challenge icon

אתגר

קל

צרו מחלקה OpenQuestion שיורשת מ־Question ומממשת את הבנאי ואת המתודות print ו־check של המחלקה Question.

 

בנאי - אמור לקבל מחרוזת ורשימה של מחרוזות ולשמור אותן בשדות question ו־answers, בהתאמה.

 

מתודת print - מדפיסה את השאלה בפורמט '[?] {question}'

לדוגמה, אם השאלה היא 'Are you experienced programmer?', המתודה אמורה להדפיס '[?] Are you experienced programmer?'

 

מתודת check - מחזירה True אם מחרוזת הקלט (התשובה) כלולה בשדה answers, אחרת False.

לדוגמה, עבור answers = ['yes', 'maybe'], אם check('yes') מחזירה True, ואם check('nope') מחזירה False 

נסו בעצמכם

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)

כל השיעורים ביחידה מחולל חידונים – פרויקט OOP ב-Python

תרגלו בעצמכם: קומפיילר Python אונליין