Menu
CoddyTech

Pertanyaan Terbuka

Pelajaran 5 dari 11 dalam kursus Generator Kuis: Proyek OOP Python di Coddy.

challenge icon

Tantangan

Mudah

Buat class OpenQuestion yang mewarisi Question dan mengimplementasikan konstruktor serta method print dan check dari class Question.

 

Konstruktor - harus menerima string dan list berisi string, lalu menyimpannya masing-masing di field question dan answers.

 

Method print - mencetak pertanyaan dengan format '[?] {question}'

Contohnya, jika pertanyaannya adalah 'Are you experienced programmer?',, method tersebut harus mencetak '[?] Are you experienced programmer?'

 

Method check - mengembalikan True jika string input (jawaban) terdapat di field answers, jika tidak, mengembalikan False.

Contohnya, untuk answers = ['yes', 'maybe'], jika check('yes') mengembalikan True, dan jika check('nope') mengembalikan False 

Coba sendiri

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)

Semua pelajaran di Generator Kuis: Proyek OOP Python

Latihan sendiri: Compiler Python online