Python ile Not Ortalaması Hesabı Yapma

Bu yazımızda, üç farklı alternatif çözümle beraber Python ile not ortalaması hesabı yapabilen bir kodlama örneği derledim.

1. Öğrenicinin vize, proje ve final notlarını girdiği ve girdiği notlara göre vize notunun %30‘nu, proje notunun %30‘nu ve final notunun da %40‘nı alan ve sonucu ekranda gösteren Python kodunu yazınız.

# Notları kullanıcıdan al
vize = float(input("Vize notunu giriniz: "))
proje = float(input("Proje notunu giriniz: "))
final = float(input("Final notunu giriniz: "))
# Ortalama hesapla
ortalama = vize*0.3 + proje*0.3 + final*0.4
print("Ortalamanız: ", ortalama)

2. Öğrenicinin vize, proje ve final notlarını girdiği ve girdiği notlara göre vize notunun %30‘nu, proje notunun %30‘nu ve final notunun da %40‘nı alan ve eğer ortalama puan 50‘nin altındaysa öğrenicinin kaldığını üstündeyse de geçtiğini gösteren Python kodunu yazınız.

İf-else kullanarak çözeceğiz. İşe yine akış şemasıyla başlayalım:

# Notları kullanıcıdan al
vize = float(input("Vize notunu giriniz: "))
proje = float(input("Proje notunu giriniz: "))
final = float(input("Final notunu giriniz: "))
# Ortalama hesapla
ortalama = vize*0.3 + proje*0.3 + final*0.4
# Geçip geçmediğini kontrol et
if ortalama >= 50:
    sonuc = 'geçti'
else:
    sonuc = 'kaldı'
print("Ortalamanız: ", ortalama)
print("Sonucunuz: ", sonuc)

Bu kod, kullanıcıdan vize, proje ve final notlarını alır, bu notlara göre ortalama hesaplar ve eğer ortalama 50 veya üzeriyse öğrencinin geçtiğini, 50’nin altındaysa kaldığını belirtir. Son olarak, hesaplanan ortalama ve sonuç ekrana yazdırılır. Kodu çalıştırmak için: Trinket

3. Öğrenicinin vize, proje ve final notlarını girdiği ve girdiği notlara göre vize notunun %30‘nu, proje notunun %30‘nu ve final notunun da %40‘nı alan ortalama puanını harflendiren Python kodunu yazın. Harflendirme aşağıdaki gibi olacaktır:

Not OrtalamasıHarf Aralığı
90-100AA
85-89BA
80-84BB
75-79CB
70-74CC
65-69DC
60-64DD
50-59FD
49 ve altıFF

Bu problemimizin çözümünde if-elif-else kullanacağız. İlk iş olarak yine yapacağımız işlemi akış şemasında gösterelim:

# Notları kullanıcıdan al
vize = float(input("Vize notunu giriniz: "))
proje = float(input("Proje notunu giriniz: "))
final = float(input("Final notunu giriniz: "))
# Ortalama hesapla
ortalama = vize*0.3 + proje*0.3 + final*0.4
# Harf notuna dönüştür
if ortalama >= 90:
    harf = 'AA'
elif ortalama >= 85:
    harf = 'BA'
elif ortalama >= 80:
    harf = 'BB'
elif ortalama >= 75:
    harf = 'CB'
elif ortalama >= 70:
    harf = 'CC'
elif ortalama >= 65:
    harf = 'DC'
elif ortalama >= 60:
    harf = 'DD'
elif ortalama >= 50:
    harf = 'FD'
else:
    harf = 'FF'
print("Ortalamanız: ", ortalama)
print("Harf notunuz: ", harf)

Kodu çalıştırmak için: Trinket

Ortalama notlar genellikle en yüksekten en düşüğe doğru sıralanır, böylece ilk karşılaşılan True koşulu en yüksek not aralığı için olur. Bu nedenle, genellikle en yüksek not aralığı (90-100) ilk if bloğunda kontrol edilir, ardından daha düşük aralıklar elif bloklarında kontrol edilir, ve en düşük aralık (49 ve altı) else bloğunda kontrol edilir.

Bu şekilde, örneğin bir öğrencinin ortalaması 87 ise, ilk if bloğu False olur çünkü 87, 90’dan küçüktür. Ancak, ilk elif bloğu True olur çünkü 87, 85’ten büyüktür veya eşittir. Bu nedenle, ‘BA’ harf notu atanır ve diğer elif ve else blokları kontrol edilmez. Bu, programın daha hızlı çalışmasını sağlar çünkü gereksiz kontroller yapmaz.

Eğer ortalamalar en düşükten en yükseğe doğru sıralanırsa her elif bloğu kontrol edilir, bu da programın daha yavaş çalışmasına neden olur. Örneğin, ortalama 87 ise ve ortalamalar en düşükten en yükseğe doğru sıralanırsa program ilk elif bloğunu kontrol eder ve False olur, sonra ikinci elif bloğunu kontrol eder ve yine False olur ve bu şekilde devam eder. Haliyle gereksiz kontroller yapacağından programın daha yavaş çalışmasına neden olacaktır. Yani şu şekilde bir yaklaşım benimsemeyin:

# Notları kullanıcıdan al
vize = float(input("Vize notunu giriniz: "))
proje = float(input("Proje notunu giriniz: "))
final = float(input("Final notunu giriniz: "))
# Ortalama hesapla
ortalama = vize*0.3 + proje*0.3 + final*0.4
# Harf notuna dönüştür (Yanlış sıralama)
if ortalama >= 49:
    harf = 'FF'
elif ortalama >= 50:
    harf = 'FD'
elif ortalama >= 60:
    harf = 'DD'
elif ortalama >= 65:
    harf = 'DC'
elif ortalama >= 70:
    harf = 'CC'
elif ortalama >= 75:
    harf = 'CB'
elif ortalama >= 80:
    harf = 'BB'
elif ortalama >= 85:
    harf = 'BA'
else:
    harf = 'AA'
print("Ortalamanız: ", ortalama)
print("Harf notunuz: ", harf)

Bu haliyle ortalamalar en düşükten en yükseğe doğru sıralanmıştır. Bunu böyle yaparak, örneğin ortalama 87 ise ilk if bloğu True olur çünkü 87, 49’dan büyüktür veya eşittir. Bu nedenle, harf notu ‘FF’ olarak atanır ve diğer elif ve else blokları kontrol edilmez. Bu nedenle, bu kod doğru çalışmaz.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu