Python
Skor hesaplama
score ile doğru sayısını ve yüzdesini hesaplarsın.
Cevap karşılaştırma
Skor hesaplamak için her sorunun doğru cevabını kullanıcının verdiği cevapla karşılaştırman gerekir. check_answer metodu, question.answer == guess karşılaştırmasıyla doğru olup olmadığını döndürür.
Skoru tutmak için Quiz sınıfına bir score özniteliği eklersin. Her doğru cevapta self.score += 1 yazarsın. Böylece quiz bittiğinde quiz.score kaç doğru cevap verdiğini gösterir.
Skor özniteliği
Quiz sınıfına score: int = 0 alanını eklersin. Bu alan, quiz başladığında sıfırdır; her doğru cevapla artar. int türü sayısal değer içindir; varsayılanı 0 olur.
Skoru artırmak için self.score += 1 yazarsın. Bu, self.score = self.score + 1 ile eşdeğerdir. Quiz bittiğinde print(quiz.score) ile skoru yazdırabilirsin. Böylece uygulama, doğru cevap sayısını net biçimde gösterir.
Uygulama check_answer ve score ekle
Üstteki Quiz sınıfına score: int = 0 alanını ekle. Sonra def check_answer(self, q, guess): metodunu yaz; gövdede if q.answer == guess: ile self.score += 1 ve return True, değilse return False yaz. Sınıftan sonra bir quiz oluştur, iki soru ekle, quiz.check_answer(quiz.questions[0], "Ankara") ve quiz.check_answer(quiz.questions[1], "5") çağrılarını yap, print(quiz.score) ile skoru yazdır.
Ö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)
score: int = 0
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}")
def check_answer(self, q, guess):
if q.answer == guess:
self.score += 1
return True
return False
quiz = Quiz()
quiz.add_question(Question(text="Başkent?", answer="Ankara"))
quiz.add_question(Question(text="2x2?", answer="4"))
quiz.check_answer(quiz.questions[0], "Ankara")
quiz.check_answer(quiz.questions[1], "5")
print(quiz.score)
Kendini test et
-
check_answer ne döndürür?
- Soru metnini
- Doğru cevabı
- Toplam skoru
- True ya da False
Cevabı göster
True ya da False — check_answer, tahminin doğru olup olmadığını True/False olarak döndürür.
-
skor artırma satırını tamamla
def check_answer(self, q, guess):
if q.answer == guess:
self.____ += 1
return True
return False
Cevabı göster
def check_answer(self, q, guess):
if q.answer == guess:
self.score += 1
return True
return False
-
Skor hesaplama parçalarını eşleştir
- check_answer
- Cevap karşılaştırma
- score: int = 0
- Başlangıç skoru
- self.score += 1
- Doğru cevap artışı
- q.answer == guess
- Eşitlik karşılaştırması
Sıradaki ders: Birleştirme