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 derlenmiştir.
Python ile Not Ortalaması Hesabı
⭐ Öğ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.
Öncelikle problemimizin çözüm yolunu anlatan akış diyagramını (flowchart) oluşturalım:
Sıra geldi akış diyagramıyla belirttiğimiz ifadeleri kodlamaya:
1 2 3 4 5 6 7 8 9 |
# 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) |
Bu kod, kullanıcıdan vize, proje ve final notlarını alır, bu notlara göre ortalama hesaplar ve hesaplanan ortalamayı ekrana yazdırır. Kodu çalıştırmak: Trinket
Şimdi de problemimizi öğrencinin ortalamasının belli bir puan altında kalması durumunda kalacağını gösterecek şekilde genişletelim:
⭐ Öğ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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# 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
Ve son olarak da öğrenicimizin aldığı notların ortalaması sonucu elde edeceği harfi gösteren Python kodunu yazalım.
⭐ Öğ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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# 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, bu durumda 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. Bu, gereksiz kontroller yapar ve programın daha yavaş çalışmasına neden olur.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# 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 kodda, ortalamalar en düşükten en yükseğe doğru sıralanmıştır. Bu durumda, ö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.