def Notlari_gir():
for i in range(ogr_sayisi):
vize_1=int(input("VİZE 1 :"))
vize_2=int(input("VİZE 2 :"))
final=int(input("Final :"))
sözlük["vize1"]=vize_1
sözlük["vize2"]=vize_2
sözlük["final"]=final
şu kodda vize1 vize2 final değerlerini kaç öğrenci varsa döndürecek döndürüyor fakat son döneni vize 1 vize 2 ve finale kaydediyor ilk girilenleri kaydetmiyor.Çözüm nedir?
Çünkü sözlüklerde aynı isme sahip birden fazla anahtar bulunamaz.
Aslında kaydediyor, fakat bir sonraki döngü içerisinde, aynı anahtara yeni bir değer atıyorsunuz.
Sizin burada yaptığınız işlem, yeni anahtar eklemek değil, var olan bir anahtara değer atamak.
Yeni bir anahtar oluşturmak için:
sözlük.update({anahtar: değer})
Her bir öğrenci için ayrı bir sözlük oluşturmayı veya sözlük içerisinde sözlük kullanmayı bir düşünün derim. Öbür türlü yapmanız gereken şey, “vize1” in başına veya sonuna bir takım eklemeler yaparak farklı bir anahtar haline getirmek.
vize1,vize2 ve final değerlerinin belli bir katını alıp ortalama hesaplayacağımda bunu nasıl yaparım. Mesela vize 1 in % 25’i ,2’nin 35’i ,finalin 40’ı=ortalama
Görünüşe göre sizin liste/tuple sandığınız bir değişken float tipinde, ve siz bu değişkeni var[0] gibisinden çağırmaya çalışıyorsunuz. Bu da hataya sebebiyet veriyor.
Hata şurada: if 90 <= ortalama[i] <= 100: ortalama dediğimiz şey bir float. Sanırım ort[i] demek istediniz.
Ayrıca ortalama[i].append() burada da harf_notu demek istediniz sanırım.