IndexError: list index out of range hatası alıyorum nedenini anlamadım yardımcı olur musunuz?

def not_hesaplama(satır):
    satır = satır[:-1]
    liste = satır.split(",")

    isim = liste[0]
    not1 = int(liste[1])
    not2 = int(liste[2])
    not3 = int(liste[3])
    son_not = not1*(3/10) + not2*(3/10) + not3*(4/10)

    if son_not >= 90 :
        harf = "AA"
    elif son_not >= 85 :
        harf = "BA"
    elif son_not >= 75 :
        harf = "BB"
    elif son_not >= 70 :
        harf = "BC"
    elif son_not >= 65 :
        harf = "CC"
    elif son_not >= 60 :
        harf = "DC"
    elif son_not >= 55 :
        harf = "DD"
    elif son_not >= 50 :
        harf = "DE"
    elif son_not >= 45 :
        harf = "EE"
    elif son_not >= 40 :
        harf = "EF"
    else:
        harf = "FF"

    return isim + "------------>" + harf + "<------------" + "\n"






with open("bilgiler", "r", encoding="utf-8") as file:
    eklenecekler_listesi = list()



    for i in file:
        eklenecekler_listesi.append(not_hesaplama(i))

    print(eklenecekler_listesi)

with open("harf_notları", "w", encoding="utf-8") as file2:
    for i in eklenecekler_listesi:
        file2.write(i) 

with open("bilgiler", "r", encoding="utf-8") as file: ve
with open("harf_notları", "w", encoding="utf-8") as file2:

Yukarıdaki satırlardaki dosya uzantısı eksik. Python bu şekilde de veriyi okuyup işlem yapıyor ancak bence dosya uzantılı eklenmeli.
bilgiler ve harf_notları dosyalarının biçimi ne? txt mi?, xlsx mi? pdf mi? :slight_smile:

Her satırda 4 veri (isim ve 3 adet not değeri) yoksa, list index out of range hatası vermesi normal.

Şu biçimdeki bir bilgiler dosyası için çalışıyor:

samet,15,20,30
hasan,40,50,90
enes,20,15,40

Kod şu şekilde:

def not_hesaplama(satır):
    satır = satır[:-1]
    liste = satır.split(",")

    isim = liste[0]
    not1 = int(liste[1])
    not2 = int(liste[2])
    not3 = int(liste[3])
    son_not = not1*(3/10) + not2*(3/10) + not3*(4/10)

    if son_not >= 90 :
        harf = "AA"
    elif son_not >= 85 :
        harf = "BA"
    elif son_not >= 75 :
        harf = "BB"
    elif son_not >= 70 :
        harf = "BC"
    elif son_not >= 65 :
        harf = "CC"
    elif son_not >= 60 :
        harf = "DC"
    elif son_not >= 55 :
        harf = "DD"
    elif son_not >= 50 :
        harf = "DE"
    elif son_not >= 45 :
        harf = "EE"
    elif son_not >= 40 :
        harf = "EF"
    else:
        harf = "FF"

    return isim + "------------>" + harf + "<------------" + "\n"





yazdirilacaklar_listesi = []

with open("bilgiler", "r", encoding="utf-8") as file:



    for i in file:
        print(not_hesaplama(i))
        yazdirilacaklar_listesi.append(not_hesaplama(i))


with open("harf_notları", "w", encoding="utf-8") as file2:
    for i in yazdirilacaklar_listesi:
        file2.write(i)

Kolay gelsin.