Python
Quiz oynatma
run ile soruları sırayla sorarsın.
Quiz'i oynatma
Quiz sınıfına play metodu ekleyerek tüm soruları ekrana yazdırırsın. Metodun gövdesinde for q in self.questions: döngüsüyle her soruyu gezer, print(q.text) ile metnini gösterirsin.
Bu basit oynatma, dışarıdan girdi beklemeden soru listesini sıralar. Daha sonra check_answer ile cevap karşılaştırmayı ekleyeceğiz. Şimdilik amacımız soruları sırayla göstermek; oylama ve puanlama bir sonraki derste geliyor.
Soruları sırayla göstermek
Oynatma sırasında her sorunun sırasını da göstermek isteyebilirsin. enumerate(self.questions, start=1) kullanarak hem sıra numarasını hem de soruyu elde edersin. Böylece çıktı Soru 1: ..., Soru 2: ... biçiminde düzenli görünür.
Formatlama için f-dizgesi kullanırsın: f"Soru {i}: {q.text}". Burada i sıra numarası, q.text soru metnidir. Bu, çıktıyı test edilebilir ve deterministik kılar; her çalıştırma aynı sonucu verir.
Uygulama play metodunu ekle
Üstteki Quiz sınıfına def play(self): metodunu ekle. Gövdesinde for i, q in enumerate(self.questions, start=1): döngüsü ve print(f"Soru {i}: {q.text}") satırı olsun. Sonra bir quiz oluştur, iki soru ekle (text="Başkent?" ve text="2x2?") ve quiz.play() çağrısı yap.
Örnek çözümü göster
from dataclasses import dataclass, field
@dataclass
class Question:
text: str = ""
answer: str = ""
@dataclass
class Quiz:
questions: list = field(default_factory=list)
def add_question(self, q):
self.questions.append(q)
def play(self):
for i, q in enumerate(self.questions, start=1):
print(f"Soru {i}: {q.text}")
quiz = Quiz()
quiz.add_question(Question(text="Başkent?", answer="Ankara"))
quiz.add_question(Question(text="2x2?", answer="4"))
quiz.play()
Kendini test et
-
play metodu ne döndürür?
- Yalnızca ekrana yazı yazar, değer döndürmez
- Doğru cevapları
- Bir liste
- Toplam skoru
Cevabı göster
Yalnızca ekrana yazı yazar, değer döndürmez — play metodu print ile çalışır.
-
Oynatma parçalarını eşleştir
- for q in self.questions
- Döngü
- enumerate(...)
- Sıra numarası
- print(q.text)
- Metni yazdır
- f"Soru {i}: ..."
- Biçimli çıktı
-
play metodunun gövdesini tamamla
def play(self):
for i, q in enumerate(self.questions, start=1):
print(f"Soru {____}: {q.text}")
Cevabı göster
def play(self):
for i, q in enumerate(self.questions, start=1):
print(f"Soru {i}: {q.text}")
Sıradaki ders: Skor hesaplama