Quiz App Nedir?
Quiz App, kullanıcılara bir dizi soru sorarak bilgi düzeylerini test eden bir uygulamadır. Kullanıcı, her soruya cevap verdikten sonra doğru veya yanlış olduğunu öğrenir ve sonunda toplam puanı hesaplanır. Bu tür uygulamalar eğitimde sıkça kullanılır ve bilgi ölçme ve değerlendirme amacı taşır.
Proje Hedefleri ve Öğrenci Faydaları
Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, kullanıcı etkileşimi ve veri işleme konularında deneyim kazanacaklardır.
Projenin Hedef Çıktıları
Temel Python yapıları ve kontrol akışlarını kullanarak bir quiz uygulaması oluşturma.
Kullanıcıdan veri alma ve bu verileri işleyerek quiz akışını yönetme.
Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma.
Projenin Adım Adım Görevleri
Soruları ve cevapları tanımlama.
Kullanıcıdan cevap alma.
Kullanıcının cevabını kontrol etme ve geri bildirim sağlama.
Kullanıcının puanını hesaplama ve ekrana yazdırma.
Fonksiyonlar kullanarak kodu daha modüler hale getirme.
Fonksiyonsuz Çözüm
Adım 1: Soruları ve Cevapları Tanımlama
İlk adım olarak, sorular ve cevaplar tanımlanacaktır.
# Soruları ve cevapları tanımlama
sorular = [
{"soru": "Python'un yaratıcısı kimdir?", "cevap": "Guido van Rossum"},
{"soru": "Python'da liste oluşturmak için hangi semboller kullanılır?", "cevap": "[]"},
{"soru": "Python hangi yıl ortaya çıkmıştır?", "cevap": "1991"}
]
Bu kod parçası, quizde kullanılacak olan soruları ve cevapları tanımlar.
Adım 2: Kullanıcıdan Cevap Alma
İkinci adımda, kullanıcıdan bir cevap alınacaktır.
# Kullanıcıdan cevap alma
kullanici_cevaplari = []
for soru in sorular:
cevap = input(soru["soru"] + " ")
kullanici_cevaplari.append(cevap)
Bu kod parçası, her bir soru için kullanıcıdan cevap alır ve kullanici_cevaplari listesine ekler.
Adım 3: Kullanıcının Cevabını Kontrol Etme ve Geri Bildirim Sağlama
Üçüncü adımda, kullanıcının cevabı kontrol edilecek ve geri bildirim sağlanacaktır.
# Kullanıcının cevabını kontrol etme ve geri bildirim sağlama
dogru_cevap_sayisi = 0
for i in range(len(sorular)):
if kullanici_cevaplari[i].lower() == sorular[i]["cevap"].lower():
print(f"Soru {i + 1}: Doğru!")
dogru_cevap_sayisi += 1
else:
print(f"Soru {i + 1}: Yanlış! Doğru cevap: {sorular[i]['cevap']}")
Bu kod parçası, kullanıcının cevaplarını kontrol eder ve her bir soru için doğru veya yanlış olduğunu ekrana yazdırır.
Adım 4: Kullanıcının Puanını Hesaplama ve Ekrana Yazdırma
Dördüncü adımda, kullanıcının toplam puanı hesaplanacak ve ekrana yazdırılacaktır.
# Kullanıcının puanını hesaplama ve ekrana yazdırma
toplam_soru_sayisi = len(sorular)
print(f"Toplam doğru cevap sayınız: {dogru_cevap_sayisi}/{toplam_soru_sayisi}")
Bu kod parçası, kullanıcının toplam doğru cevap sayısını hesaplar ve ekrana yazdırır.
Fonksiyonlarla Çözüm
Adım 1: Soruları ve Cevapları Tanımlama Fonksiyonu
İlk adım olarak, sorular ve cevaplar tanımlanacaktır.
def sorulari_tanimla():
"""Soruları ve cevapları tanımlar."""
return [
{"soru": "Python'un yaratıcısı kimdir?", "cevap": "Guido van Rossum"},
{"soru": "Python'da liste oluşturmak için hangi semboller kullanılır?", "cevap": "[]"},
{"soru": "Python hangi yıl ortaya çıkmıştır?", "cevap": "1991"}
]
Bu fonksiyon, quizde kullanılacak olan soruları ve cevapları tanımlar ve döndürür.
Adım 2: Kullanıcıdan Cevap Alma Fonksiyonu
İkinci adımda, kullanıcıdan bir cevap alınacaktır.
def cevaplari_al(sorular):
"""Kullanıcıdan cevapları alır."""
kullanici_cevaplari = []
for soru in sorular:
cevap = input(soru["soru"] + " ")
kullanici_cevaplari.append(cevap)
return kullanici_cevaplari
Bu fonksiyon, her bir soru için kullanıcıdan cevap alır ve kullanici_cevaplari listesine ekleyerek döndürür.
Adım 3: Kullanıcının Cevabını Kontrol Etme ve Geri Bildirim Sağlama Fonksiyonu
Üçüncü adımda, kullanıcının cevabı kontrol edilecek ve geri bildirim sağlanacaktır.
def cevaplari_kontrol_et(sorular, kullanici_cevaplari):
"""Kullanıcının cevaplarını kontrol eder ve geri bildirim sağlar."""
dogru_cevap_sayisi = 0
for i in range(len(sorular)):
if kullanici_cevaplari[i].lower() == sorular[i]["cevap"].lower():
print(f"Soru {i + 1}: Doğru!")
dogru_cevap_sayisi += 1
else:
print(f"Soru {i + 1}: Yanlış! Doğru cevap: {sorular[i]['cevap']}")
return dogru_cevap_sayisi
Bu fonksiyon, kullanıcının cevaplarını kontrol eder ve her bir soru için doğru veya yanlış olduğunu ekrana yazdırır. Ayrıca, toplam doğru cevap sayısını döndürür.
Adım 4: Kullanıcının Puanını Hesaplama ve Ekrana Yazdırma Fonksiyonu
Dördüncü adımda, kullanıcının toplam puanı hesaplanacak ve ekrana yazdırılacaktır.
def puani_hesapla_ve_yazdir(dogru_cevap_sayisi, toplam_soru_sayisi):
"""Kullanıcının puanını hesaplar ve ekrana yazdırır."""
print(f"Toplam doğru cevap sayınız: {dogru_cevap_sayisi}/{toplam_soru_sayisi}")
Bu fonksiyon, kullanıcının toplam doğru cevap sayısını hesaplar ve ekrana yazdırır.
Adım 5: Oyunu Başlatma Fonksiyonu
Bu fonksiyon, Quiz App oyununu başlatır ve oyunun akışını yönetir.
def oyunu_baslat():
"""Quiz App oyununu başlatır."""
sorular = sorulari_tanimla()
kullanici_cevaplari = cevaplari_al(sorular)
dogru_cevap_sayisi = cevaplari_kontrol_et(sorular, kullanici_cevaplari)
toplam_soru_sayisi = len(sorular)
puani_hesapla_ve_yazdir(dogru_cevap_sayisi, toplam_soru_sayisi)
# Oyunu başlatma
oyunu_baslat()
Bu fonksiyon, Quiz App oyununu başlatır ve oyunun akışını yönetir. Kullanıcı cevaplarını alır, cevapları kontrol eder ve kullanıcının puanını hesaplar ve ekrana yazdırır.
Kullanılan Konular
Veri Tipleri: Bu projede, listeler (sorular, cevaplar) ve stringler (kullanıcı cevapları) kullanılmıştır.
Listeler: Sorular ve cevaplar listeler şeklinde tutulmuştur.
Koşullu İfadeler: if-else yapıları, kullanıcı cevaplarını kontrol etmek ve geri bildirim sağlamak için kullanılmıştır.
Fonksiyonlar: Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır.
Döngüler: for döngüsü, soruların üzerinden geçmek ve kullanıcı cevaplarını almak için kullanılmıştır.