Menu
CoddyTech

Pertanyaan dengan Beberapa Pilihan

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

challenge icon

Tantangan

Sedang

Buat class MultiOptionsQuestion yang mewarisi Question dan mengimplementasikan constructor serta method print dan check dari class Question.

 

Constructor - harus menerima string, list berisi string, dan integer, lalu menyimpannya masing-masing dalam field question, options  dan answer_index.

 

method print - mencetak pertanyaan dengan format berikut,

[?] {question}

[1] {options[0]}
[2] {options[1]}
.
.
.

Misalnya, jika pertanyaannya adalah 'How many states are in the USA?' dan opsinya adalah ['49', '50', '51', '32'],

[?] How many states are in the USA?

[1] 49
[2] 50
[3] 51
[4] 32

 

method check - mengembalikan True jika string input (jawaban) sama dengan answer_index + 1, jika tidak, False

Catatan, input untuk method check berupa string, kamu harus mengubahnya menjadi integer!

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

Semua pelajaran di Generator Kuis: Proyek OOP Python

2Pertanyaan

PertanyaanPertanyaan Ya/TidakPelajaran proyekPertanyaan TerbukaPelajaran proyekPertanyaan dengan Beberapa PilihanPelajaran proyek

Latihan sendiri: Compiler Python online