CodeBlanks Logo Icon CodeBlanks

Quiz modeli

Question ve Quiz sınıflarının iskeletini tasarlarsın.

Proje: Quiz uygulaması

Bu beş derslik projede bir quiz uygulaması yapacaksın. Her derste bir parça ekleyecek, son derste çalışan bir mini komut satırı uygulamasını tamamlayacaksın.

Önceki gruplarda öğrendiğin sınıf (class), veri sınıfı (dataclass) ve liste kavramlarını kullanacaksın. Proje boyunca bir Question sınıfı tasarlayacaksın: soru metni ve doğru cevabı tutan bir yapı. Yanına Quiz sınıfını ekleyip birden çok soruyu yöneteceksin. Oynatma ve skor hesaplama adımlarını da ekleyerek uygulamayı tamamlayacaksın.

Question iskeleti

Bir soru (question), metin ve doğru cevap olmak üzere iki temel veri taşır. @dataclass süsleyicisi ile bu sınıfı kısa yoldan tanımlarsın: her alan adının yanına türünü ve boş dize varsayılanını yazarsın.

Örnek: @dataclass\nclass Question:\n text: str = ""\n answer: str = "". Bu tanım, kurucu ve karşılaştırma metotlarını otomatik üretir. Bir soru oluşturmak için Question(text="Başkent?", answer="Ankara") yazman yeterli.

Uygulama Question sınıfını tanımla

from dataclasses import dataclass ile başla. @dataclass ile Question sınıfını tanımla; text: str = "" ve answer: str = "" alanlarını ekle. Sonra q = Question(text="Başkent neresi?", answer="Ankara") ile bir soru oluştur ve print(q.text) ile soru metnini yazdır.

Başlangıç kodu

main.py
# Question veri sınıfını tanımla ve bir soru oluştur

Örnek çözüm

main.py
# Question veri sınıfını tanımla ve bir soru oluştur
from dataclasses import dataclass

@dataclass
class Question:
    text: str = ""
    answer: str = ""

q = Question(text="Başkent neresi?", answer="Ankara")
print(q.text)

Beklenen çıktı

Başkent neresi?

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Quiz neden veri sınıfı ile yazılır?

  • Soru verisini ve varsayılanları kısa yoldan tanımlar Doğru cevap
  • Sınıf olmadan da yazılabilir, fark etmez
  • Veri sınıfları yalnızca veritabanı gerektirir
  • Veri sınıfı programı yavaşlatır

Açıklama: Veri sınıfı, soru verisini ve varsayılanları kısa yoldan tanımlar.

2 Question alanının türünü tamamla

Soru
@dataclass
class Question:
    text: ____ = ""
    answer: str = ""
Cevap
@dataclass
class Question:
    text: str = ""
    answer: str = ""

Açıklama: text alanı metin olduğu için str türü yazılır.

3 Quiz proje kavramlarını eşleştir

Kavram Anlamı
Question Soru verisini tutar
text Soru metni
answer Doğru cevap
@dataclass Süsleyici

Orta seviye bölümündeki tüm dersler