Python'da not ortalaması hesaplayan kod önerisi

zencefilli

Hectopat
Katılım
27 Eylül 2020
Mesajlar
11
Daha fazla  
Cinsiyet
Erkek
"Kullanıcıdan 3 sınav notu girmesini isteyiniz.
Bu sınav notlarının ortalamasını hesaplatınız.
Aşağıdaki not aralıklarına göre uygun harfi ekrana yazdırınız.
AA: 90 - 100
BA: 80 - 89
BB: 75 - 79
CB: 70 - 74
CC: 60 - 69
DC: 50 - 59
DD: 40 - 49
FD: 30 - 39
FF: 0 - 29

Ekran çıktı örneği

Birinci sınav notunu giriniz:85

İkinci sınav notunu giriniz:85

Üçüncü sınav notunu giriniz:85

Ortalama: 85

Harf Notu: BA"

Böyle bir Python kodu lazım.
 
Son düzenleme:
def harf_notu_hesapla(ortalama):
if 90 <= ortalama <= 100:
return "AA"
elif 80 <= ortalama <= 89:
return "BA"
elif 75 <= ortalama <= 79:
return "BB"
elif 70 <= ortalama <= 74:
return "CB"
elif 60 <= ortalama <= 69:
return "CC"
elif 50 <= ortalama <= 59:
return "DC"
elif 40 <= ortalama <= 49:
return "DD"
elif 30 <= ortalama <= 39:
return "FD"
else:
return "FF"

# Kullanıcıdan sınav notlarını alma
birinci_not = float(input("Birinci sınav notunu giriniz: "))
ikinci_not = float(input("İkinci sınav notunu giriniz: "))
üçüncü_not = float(input("Üçüncü sınav notunu giriniz: "))

# Ortalama hesaplama
ortalama = (birinci_not + ikinci_not + üçüncü_not) / 3

# Harf notunu hesaplama
harf_notu = harf_notu_hesapla(ortalama)

# Çıktıyı ekrana yazdırma
print("\nOrtalama:", ortalama)
print("Harf Notu:", harf_notu)
 

Syntax error veriyor.
 
Binary search algoritmasını kullanarak yapabilirsiniz:
Python:
from bisect import bisect

def ortalamaHesapla(adet):
    """
    Sınav notlarının ortalamasını hesaplar.

    Args:
        adet (int): Sınav sayısı.

    Returns:
        float: Sınav notlarının ortalaması.
    """
    toplam = 0
    for i in range(adet):
        not_s = float(input(f"\n{i+1}. sınav notunu giriniz: "))
        toplam += not_s
    return toplam / adet

def harfNotu(ortalama, sinirlar=[30, 40, 50, 60, 70, 75, 80, 90], notlar=["FF", "FD", "DD", "DC", "CC", "CB", "BB", "BA", "AA"]):
    """
    Ortalama puana göre harf notu atar.

    Args:
        ortalama (float): Ortalama puan.
        sinirlar (list): Her bir harf notu için sınır değerleri.
        notlar (list): Karşılık gelen harf notları listesi.

    Returns:
        str: Ortalama puana göre atanan harf notu.
    """
    indeks = bisect(sinirlar, ortalama)
    return f"\n\nOrtalama = {ortalama}\nHarf Notu = {notlar[indeks]}"

if __name__ == '__main__':
    print(harfNotu(ortalamaHesapla(3)))

Çıktı:


"bisect" modülünün resmi dokümantasyonu:

Binary search algoritması hakkında bilgi:
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…