Puanlama sistemi

merhaba bir proje üstünde çalışıyorum. 10 soruluk bir sistem kurdum fakat bu soruların her birine puan atamam gerekiyor. Nasıl yapabileceğim hakkında bilgi verebilir misiniz? for else if while döngülerini kullanarak denedim fakat bualamadım.

Merhabalar,

10 soru olduğunu söylemişsiniz, muhtemelen her soru doğru cevaplanırsa kişi 100 alacak. Bu da her sorunun 10 puan ettiğini gösteriyor.

Programın sonunda doğru cevap sayısını hesapladıysanız geriye pek bir şey kalmıyor. Doğru cevap sayısını bir değişkene atayın ve bu değişkeni 10 ile çarparak puanı bulun.

İyi kodlamalar.

4 Beğeni
#başlangıç puanı
points = 0
systemStartButton = True

while systemStartButton == True:
    question1_answer = input("Türkiye'nin başkenti neresidir?")
    if question1_answer == "Ankara" or question1_answer == "ankara":
        print("Evet cevap doğru!")
        points = points + 10
        print("mevcut puan: {points}".format(points=points))
    else:
        print("Cevap yanlış!")
    #Soru 2
    question1_answer = input("2+2 = ?")
    if question1_answer == "4":
        print("Evet cevap doğru!")
        points = points + 10
        print("mevcut puan: {points}".format(points=points))
    else:
        print("Cevap yanlış!")
    #soru 3
    question1_answer = input("5! kaçtır?")
    if question1_answer == "120":
        print("Evet cevap doğru!")
        points = points + 10
        print("mevcut puan: {points}".format(points=points))
    else:
        print("Cevap yanlış!")
    #soru 4
    question1_answer = input("2. dereceden 9 kök dışına kaç diye çıkar?")
    if question1_answer == "3":
        print("Evet cevap doğru!")
        points = points + 10
        print("mevcut puan: {points}".format(points=points))
    else:
        print("Cevap yanlış!")
    #soru 5
    question1_answer = input("en büyük rakam kaçtır?")
    if question1_answer == "9":
        print("Evet cevap doğru!")
        points = points + 10
        print("mevcut puan: {points}".format(points=points))
    else:
        print("Cevap yanlış!")
    
    if points == 50:
        print("Testi başarıyla tamamladın.")
        print("mevcut puanın: ", points)
        break
    else: 
        print("Bütün soruları doğru cevaplayamadın!")
        print("mevcut puanın: ", points)

ben de yeniyim kod çok acemice olmuş olabilir ama sanırım else if while döngüleriyle bu şekilde oluyor
uzun olmasın diye 5 soruda kestim aynı şekil 10 da yapabilirsin

3 Beğeni

Eğer her sorunun puanı farklı olacak ise, sözlük veri tipini kullanarak amacınıza ulaşabilirsiniz.

sorular = {0: {"metin": "Türkiye'nin başkenti: ", "cevap": "Ankara", "puan": 20},
           1: {"metin": "Fransa'nın başkenti: ", "cevap": "Paris", "puan": 5},
           2: {"metin": "Hollanda'nın başkenti: ", "cevap": "Amsterdam", "puan": 15},
           3: {"metin": "Almanya'nın başkenti: ", "cevap": "Berlin", "puan": 25},
           4: {"metin": "Azerbaycan'ın başkenti: ", "cevap": "Bakü", "puan": 35}}

net_puan = 0

for soru in sorular:
    metin = sorular[soru]["metin"]
    cevap = sorular[soru]["cevap"]
    puan = sorular[soru]["puan"]
    yanit = input(metin)
    if yanit == cevap:
        net_puan += puan
        print(f"Doğru bilerek {puan} puan kazandınız.")
    else:
        print(f"Yanıtınız yanlış, {yanit} yerine {cevap} olmalıydı.")

print(f"Net puanınız: {net_puan}")

Çıktı:

Türkiye'nin başkenti: Ankara
Doğru bilerek 20 puan kazandınız.
Fransa'nın başkenti: Paris
Doğru bilerek 5 puan kazandınız.
Hollanda'nın başkenti: Berlin
Yanıtınız yanlış, Berlin yerine Amsterdam olmalıydı.
Almanya'nın başkenti: Berlin
Doğru bilerek 25 puan kazandınız.
Azerbaycan'ın başkenti: Bakü
Doğru bilerek 35 puan kazandınız.
Net puanınız: 85
3 Beğeni

teşekkür ederim ilginiz için :slight_smile:

1 Beğeni

Teşekkür ederim notlarımı aldım :slight_smile:

1 Beğeni

teşekkür ederim gayet güzel görünüyor başarılar :slight_smile:

1 Beğeni