Menu
Coddy logo textTech

Pytanie otwarte

Lekcja 5 z 11 w kursie Generator quizów — projekt z programowania obiektowego w Pythonie w Coddy.

challenge icon

Wyzwanie

Łatwy

Utwórz klasę OpenQuestion, która dziedziczy po klasie Question i implementuje konstruktor oraz metody print i check z klasy Question.

 

Konstruktor — powinien przyjmować ciąg znaków i listę ciągów znaków oraz zapisywać je odpowiednio w polach question i answers.

 

Metoda print — wyświetla pytanie w formacie '[?] {question}'

Na przykład, jeśli pytanie to 'Are you experienced programmer?', metoda powinna wyświetlić '[?] Are you experienced programmer?'

 

Metoda check — zwraca True, jeśli wejściowy ciąg znaków (odpowiedź) znajduje się w polu answers, w przeciwnym razie zwraca False.

Na przykład, dla answers = ['yes', 'maybe'], jeśli check('yes'), zwraca True, a jeśli check('nope'), zwraca False 

Spróbuj swoich sił

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)

Wszystkie lekcje w sekcji Generator quizów — projekt z programowania obiektowego w Pythonie

Poćwicz samodzielnie: Kompilator Python online