Quiz oynatma
- Python kursu
- Orta seviye
- Ders 44/116
- 6 dk
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.
Başlangıç kodu
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)
# Quiz sınıfına play metodu ekle
# Bir quiz oluştur, iki soru ekle ve play'i çağırÖrnek çözüm
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()Beklenen çıktı
Soru 1: Başkent? Soru 2: 2x2?
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 play metodu ne döndürür?
- Yalnızca ekrana yazı yazar, değer döndürmez Doğru cevap
- Doğru cevapları
- Bir liste
- Toplam skoru
Açıklama: play metodu print ile çalışır.
2 Oynatma parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
for q in self.questions |
Döngü |
enumerate(...) |
Sıra numarası |
print(q.text) |
Metni yazdır |
f"Soru {i}: ..." |
Biçimli çıktı |
3 play metodunun gövdesini tamamla
def play(self):
for i, q in enumerate(self.questions, start=1):
print(f"Soru {____}: {q.text}")
def play(self):
for i, q in enumerate(self.questions, start=1):
print(f"Soru {i}: {q.text}")
Açıklama: i sıra numarasını temsil eder.