Menu
CoddyTech

Mulai

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

challenge icon

Tantangan

Sedang

Tambahkan method start yang tidak menerima input ke class Quiz. Method ini akan menampilkan pertanyaan (dari field questions) dan meminta input (jawaban) dari pengguna.

Periksa kasus uji untuk lebih memahami formatnya, gunakan method pertanyaan print.

Setiap permintaan input harus diawali dengan '[+] '. Lihat petunjuk jika kamu tidak yakin cara melakukannya!

Perhatikan spasi dan baris baru!

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)


class OpenQuestion(Question):
    def __init__(self, question, answers):
        self.question = question
        self.answers = answers

    def print(self):
        print('[?] ' + self.question)
    
    def check(self, answer):
        return answer in self.answers


class MultiOptionsQuestion(Question):
    def __init__(self, question, options, answer_index):
        self.question = question
        self.options = options
        self.answer_index = answer_index

    def print(self):
        print('[?] ' + self.question)
        print()
        for i in range(len(self.options)):
            print('[' + str(i + 1) + '] ' + self.options[i])
    
    def check(self, answer):
        return self.answer_index == int(answer) - 1


class Quiz:
    def __init__(self, questions):
        self.questions = questions

Semua pelajaran di Generator Kuis: Proyek OOP Python

Latihan sendiri: Compiler Python online