Harf notu hesaplama işlemi, çoğunlukla akademik başarıyı ölçmek ve değerlendirmek için kullanılır. Eğitim kurumları tarafından genel olarak uygulanan bu sistemde, öğrencinin derslerdeki başarı durumu bir not aralığı ile gösterilir. Harf notları, öğrencilere sınıf geçme durumlarına ve akademik başarı durumlarına göre atanır.
Eğer siz de harf notu hesaplama işlemini Python ile gerçekleştirmek istiyorsanız, harf notu hesaplama programı yazma adımlarını öğrenmek için makalemizi okumaya devam edebilirsiniz.
Python İle Harf Notu Hesaplama Programı Yazma
Harf notu hesaplama programı, öğrencilerin derslerden aldıkları puanları girerek bu puanların harf karşılıklarını bulmalarını sağlar. Bu işlem, öğrencilerin akademik durumlarını anlamalarına yardımcı olur.
Harf notları, 4’lük sisteme göre şu şekilde ifade edilir:
- A: 90-100
- B: 85-89
- C: 80-84
- D: 75-79
- E: 70-74
- F: 0-69
- Z: Geçersiz
- Y: Devamsızlık
- N: İşlenmedi
Derslerin kredilerine göre ağırlıklandırılmasıyla birlikte harf notunun hesaplanması yapılır.
Harf Notu Hesaplama Formülü
Bir dersin harf notunu bulmak için, ilk olarak öğrencinin aldığı notun o derse ait puan aralığında olup olmadığı kontrol edilir. Eğer alınan not bu puan aralığında ise ilgili harf notu belirlenir. Aşağıda her harf notuna karşılık gelen puan aralıkları yer almaktadır:
- A: 90-100
- B: 85-89
- C: 80-84
- D: 75-79
- E: 70-74
- F: 0-69
Aynı zamanda Z, Y ve N harfleri de bazı durumlarda kullanılır. Bu harflere karşılık gelen durumlar ise şöyledir:
- Z: Geçersiz yani herhangi bir başarı notunun olmaması (0)
- Y: Devamsızlık yani derse hiç katılmamış olma durumu
- N: İşlenmedi yani dersin henüz işlenmemiş olması
Dersin kredisine göre ağırlıklandırılmış olan notlar, toplam kredi sayısına bölünerek öğrencinin genel harf notu hesaplanır.
Puan Aralıklarının Tanımlanması
Puan aralıklarını tanımlamak için aşağıdaki gibi bir sözlük oluşturabiliriz:
durslar = {
'A': (90,100),
'B': (85,89),
'C': (80,84),
'D': (75,79),
'E': (70,74),
'F': (0,69)
}
Puan ve Kredilerin Girilmesi
Puan ve kredi bilgilerini kullanıcının girmesi için bir döngü oluşturabiliriz. Her bir derse ait puan ve kredi bilgilerini kullanıcının girmesini sağlayan kod aşağıdaki gibidir:
sayi = int(input('Kaç adet dersiniz var? '))
harf_notu = []
krediler = []
puanlar = []
yazılı = []
fizik = []
biyoloji = []
toplam = []
harf = []
durumlar = []
dersler = ['Fizik', 'Kimya', 'Matematik', 'Biyoloji', 'Geometri']
yazılı = [80,95,98,80,85]
fizik = [65,99,97,90,80]
biyoloji = [90,88,85,78,98]
toplam.append(yazılı)
toplam.append(fizik)
toplam.append(biyoloji)
durumlar.append('Fizik')
durumlar.append('Kimya')
durumlar.append('Matematik')
durumlar.append('Biyoloji')
durumlar.append('Geometri')
for i in range(sayi):
puanlar.append(float(input(f'{i + 1}. dersin puanı: ')))
krediler.append(float(input('Kredi miktarını giriniz: ')))
yaklasik_harf_notu = []
yaklasik_harf_notu.append(puanlar)
yaklasik_harf_notu.append(krediler)
yaklasik_harf_notu.append(dersler)
harf_notu.append(yaklasik_harf_notu)
durumlar.pop(0)
harf_notu[0].pop(0)
durumlar[0] = 'Fizik' + str(toplam[0])
durumlar[1] = 'Kimya' + str(toplam[1])
durumlar[2] = 'Matematik' + str(toplam[2])
durumlar[3] = 'Biyoloji' + str(toplam[3])
durumlar[4] = 'Geometri' + str(toplam[4])
dersler.pop(0)
dersler.pop(0)
dersler.pop(0)
dersler.pop(0)
dersler.pop(0)
durumlar.append('Dersler')
yazılı.pop(0)
yazılı.pop(0)
yazılı.pop(0)
yazılı.pop(0)
yazılı.pop(0)
krediler.pop(0)
krediler.pop(0)
krediler.pop(0)
krediler.pop(0)
krediler.pop(0)
toplam[0].pop(0)
toplam[1].pop(0)
toplam[2].pop(0)
toplam[3].pop(0)
toplam[4].pop(0)
genel = []
genel.append(durumlar)
genel.append(dersler)
genel.append(yazılı)
genel.append(krediler)
genel.append(toplam)
Puanların Harf Notuna Dönüştürülmesi
Puanların harf notuna dönüştürülmesi işlemi için bir döngü oluşturabiliriz. Bu döngü içinde her bir ders için harf notunu belirleyen kod aşağıdaki gibidir:
for i in range(sayi):
if puanlar[i] >= duruslar['A'][0]:
harf_notu.append('A')
elif puanlar[i] >= duruslar['B'][0]:
harf_notu.append('B')
elif puanlar[i] >= duruslar['C'][0]:
harf_notu.append('C')
elif puanlar[i] >= duruslar['D'][0]:
harf_notu.append('D')
elif puanlar[i] >= duruslar['E'][0]:
harf_notu.append('E')
else:
harf_notu.append('F')
Ağırlıklı Harf Notunun Hesaplanması
Ağırlıklı harf notunun hesaplanması işlemi için de bir döngü oluşturabiliriz. Bu döngü içinde her bir ders için ağırlıklı harf notunu hesaplayan kod aşağıdaki gibidir:
toplam_harf_notu = 0
for i in range(sayi):
if harf_notu[i] == 'A':
toplam_harf_notu += 4 * krediler[i]
elif harf_notu[i] == 'B':
toplam_harf_notu += 3 * krediler[i]
elif harf_notu[i] == 'C':
toplam_harf_notu += 2 * krediler[i]
elif harf_notu[i] == 'D':
toplam_harf_notu += 1 * krediler[i]
elif harf_notu[i] == 'E':
toplam_harf_notu += 1 * krediler[i]
Kredilerin Toplamının Hesaplanması
Kredilerin toplamını bulmak için de bir döngü oluşturabiliriz. Bu döngü içinde her bir ders için kredileri toplayan kod aşağıdaki gibidir:
toplam_kredi = sum(krediler)
Ağırlıklı Harf Notunun Hesaplanması
Ağırlıklı harf notunu hesaplamak için toplam ağırlıklı harf notunu toplam krediye bölmemiz gerekir. Bu işlem aşağıdaki gibi gerçekleştirilir:
ortalama_harf_notu = toplam_harf_notu / toplam_kredi
Ağırlıklı Harf Notunun Ekrana Yazdırılması
Ağırlıklı harf notunu ekrana yazdırmak için print() fonksiyonunu kullanabiliriz. Ancak bu değeri ondalıklı bir sayı olarak yazdırmak isterseniz round() fonksiyonunu kullanarak ondalık sayıyı belirtebilirsiniz. Bu işlem aşağıdaki gibi gerçekleştirilir:
print(f'Ağırlıklı Harf Notunuz: {round(ortalama_harf_notu,2)}')
Ağırlıklı Harf Notunun Ekstra Bilgileriyle Birlikte Ekrana Yazdırılması
Ağırlıklı harf notunun ekstra bilgileriyle birlikte ekrana yazdırılması işlemi de benzer şekilde gerçekleştirilir. Ancak burada ortalama_harf_notunu ekstra bilgilere ekleyerek yazdırmamız gerekir. Bu işlem aşağıdaki gibi gerçekleştirilir:
Ağırlıklı Harf Notunuz: A
Ders Sayısı: {len(dersler)} Kredi Miktarı: {sum(krediler)}
Örnek Kod
Pythonda harf notu hesaplama işlemini gerçekleştiren örnek kod aşağıda verilmiştir:
sayi = int(input('Kaç adet dersiniz var? '))
harf_notu = []
krediler = []
puanlar = []
durslar = {
'A': (90,100),
'B': (85,89),
'C': (80,84),
'D': (75,79),
'E': (70,74),
'F': (0,69)
sayi = int(input('Kaç adet dersiniz var? '))
harf_notu = []
krediler = []
puanlar = []
yazılı = []
fizik = []
biyoloji = []
toplam = []
harf = []
durumlar = []
dersler = ['Fizik', 'Kimya', 'Matematik', 'Biyoloji', 'Geometri']
yazılı = [80,95,98,80,85]
fizik = [65,99,97,90,80]
biyoloji = [90,88,85,78,98]
toplam.append(yazılı)
toplam.append(fizik)
toplam.append(biyoloji)
durumlar.append('Fizik')
durumlar.append('Kimya')
durumlar.append('Matematik')
durumlar.append('Biyoloji')
durumlar.append('Geometri')
dersler.pop(0)
dersler.pop(0)
dersler.pop(0)
dersler.pop(0)
dersler.pop(0)
yazılı.pop(0)
yazılı.pop(0)
yazılı.pop(0)
yazılı.pop(0)
yazılı.pop(0)
krediler.pop(0)
krediler.pop(0)
krediler.pop(0)
krediler.pop(0)
krediler.pop(0)
toplam[0].pop(0)
toplam[1].pop(0)
toplam[2].pop(0)
toplam[3].pop(0)
toplam[4].pop(0)for i in range(sayi):
puanlar.append(float(input(f'{i + 1}. dersin puanı: ')))
krediler.append(float(input('Kredi miktarını giriniz: ')))for i in range(sayi):if puanlar[i] >= duruslar['A'][0]:harf_notu.append('A')elif puanlar[i] >= duruslar['B'][0]:harf_notu.append('B')elif puanlar[i] >= duruslar['C'][0]:harf_notu.append('C')elif puanlar[i] >= duruslar['D'][0]:harf_notu.append('D')elif puanlar[i] >= duruslar['E'][0]:harf_notu.append('E')else:harf_notu.append('F')toplam_harf_notu = 0for i in range(sayi):if harf_notu[i] == 'A':toplam_harf_notu += 4 * krediler[i]elif harf_notu[i] == 'B':toplam_harf_notu += 3 * krediler[i]elif harf_notu[i] == 'C':toplam_harf_notu += 2 * krediler[i]elif harf_notu[i] == 'D':toplam_harf_notu += 1 * krediler[i]elif harf_noti[i] == 'E':toplam_harf_notu += 1 * krediler[i]toplam_kredi = sum(krediler)ortalama_harf_notu = toplam_harf_notu / toplam_krediprint(f'Ağırlıklı Harf Notunuz: {round(ortalama_harf_notu,2)}')
Kullanıcıdan Veri Alma Yöntemleri
Pythonda kullanıcıdan veri alma yöntemleri arasında input() fonksiyonu ile veri alma ve komut satırı argümanları ile veri alma yöntemleri yer alır. Bu yöntemlerin her biri kullanıcının girdiği veriyi almayı sağlar.
input() Fonksiyonu ile Veri Alma
input() fonksiyonu ile kullanıcıdan veri almak için öncelikle input() fonksiyonunu tanımlamamız gerekir. input() fonksiyonu içine string türünde bir ifade alır. Bu ifade kullanıcıdan istediğimiz bilgiyi belirttiğimiz mesajdır.
sayi = int(input('Kaç adet dersiniz var?'))
Böylece kullanıcıdan kaç adet dersi olduğu sorulur ve bu bilgi sayi değişkenine atanır. Eğer sayi değişkenine int dışında bir veri atanırsa program hata verir.
Komut Satırı Argümanları ile Veri Alma
Komut satırı argümanları ile kullanıcıdan veri almak için sys modülünü import etmemiz gerekir. Daha sonra sys.argv listesi içinde kullanıcıdan istediğimiz bilgiyi tanımlayabiliriz.
sayi = int(sys.argv[1])
Böylece kullanıcıdan kaç adet dersi olduğu argüman olarak tanımlanır ve bu bilgi sayi değişkenine atanır.