CodeBlanks Logo Icon CodeBlanks

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.

Başlangıç kodu

main.py
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 sınıfına score alanı ve check_answer metodunu ekle

# Bir quiz oluştur, iki soru ekle, cevapları kontrol et ve skoru yazdır

Örnek çözüm

main.py
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)

Beklenen çıktı

1

Soru ve cevaplar

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

1 check_answer ne döndürür?

  • Soru metnini
  • Doğru cevabı
  • Toplam skoru
  • True ya da False Doğru cevap

Açıklama: check_answer, tahminin doğru olup olmadığını True/False olarak döndürür.

2 skor artırma satırını tamamla

Soru
    def check_answer(self, q, guess):
        if q.answer == guess:
            self.____ += 1
            return True
        return False
Cevap
    def check_answer(self, q, guess):
        if q.answer == guess:
            self.score += 1
            return True
        return False

Açıklama: self.score doğru cevapta bir artar.

3 Skor hesaplama parçalarını eşleştir

Kavram Anlamı
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ı

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