Quiz modeli
- Python kursu
- Orta seviye
- Ders 42/116
- 6 dk
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
# Question veri sınıfını tanımla ve bir soru oluşturÖrnek çözüm
# 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
@dataclass
class Question:
text: ____ = ""
answer: str = ""
@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 |