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-100 | AA |
85-89 | BA |
80-84 | BB |
75-79 | CB |
70-74 | CC |
65-69 | DC |
60-64 | DD |
50-59 | FD |
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.