Pytanie otwarte
Lekcja 5 z 11 w kursie Generator quizów — projekt z programowania obiektowego w Pythonie w Coddy.
Wyzwanie
ŁatwyUtwó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