Menu
Coddy logo textTech

Domanda aperta

Lezione 5 di 11 del corso Generatore di quiz - Progetto OOP in Python di Coddy.

challenge icon

Sfida

Facile

Crea una classe OpenQuestion che eredita da Question e implementa il costruttore e i metodi print e check della classe Question.

 

Costruttore - dovrebbe ricevere una stringa e un elenco di stringhe e salvarli nei campi question e answers, rispettivamente.

 

Metodo print - stampa la domanda nel formato '[?] {question}'

Ad esempio, se la domanda è 'Are you experienced programmer?', il metodo dovrebbe stampare '[?] Are you experienced programmer?'

 

Metodo check - restituisce True se la stringa di input (la risposta) è inclusa nel campo answers, altrimenti False.

Ad esempio, per answers = ['yes', 'maybe'] se check('yes') restituisce True, se check('nope') restituisce False 

Provalo tu

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)

Tutte le lezioni di Generatore di quiz - Progetto OOP in Python

Esercitati da solo: Compilatore Python online