Ortaokul Matematik 6. Sınıf ders kitabı sayfa 144 de bulunan Ortalama ve Açıklık ile ilgili etkinliğimiz ve sonuçları aşağıdadır. Kolay gelsin.

19_UNITE4_Aritmetik_Ortalama.py
# UNITE 4 : Aritmetik ORTALAMA ve AÇIKLIK : Sayfa 144
''' 
Bir veri grubuna aritmetik ortalama değerinden büyük bir veri eklendiğinde ortalama artar, 
aritmetik ortalama değerinden küçük bir veri eklendiğinde ise ortalama azalır. 
'''
def makMin(listem):
    mak = 0
    min = 100
    makKisi = []
    minKisi = []

    for veri in listem:
        puan = int(veri[:-1].split("-")[1])
        kisi = veri[:-1].split("-")[0]
        if puan >= mak:
            mak = puan
        if puan < min:
            min = puan

    for veri in listem:
        puan = int(veri[:-1].split("-")[1])
        kisi = veri[:-1].split("-")[0]
        if puan == mak:
            makKisi.append(kisi)
        if puan == min:
            minKisi.append(kisi)

    return mak,makKisi,min,minKisi

from colorama import Fore

notlar = {"0-10" : 0,"11-20" : 0,"21-30" : 0,"31-40" : 0,"41-50" : 0,"51-60" : 0,"61-70" : 0,"71-80" : 0,"81-90" : 0,"91-100" : 0}
kisiler = {"0-10" : [],"11-20" : [],"21-30" : [],"31-40" : [],"41-50" : [],"51-60" : [],"61-70" : [],"71-80" : [],"81-90" : [],"91-100" : []}
oran = {"0-10" : 0,"11-20" : 0,"21-30" : 0,"31-40" : 0,"41-50" : 0,"51-60" : 0,"61-70" : 0,"71-80" : 0,"81-90" : 0,"91-100" : 0}

notlarToplam = 0
ogrenciSayisi = 0

with open("19_Sinif.txt","r",encoding="utf-8") as dosya:
    gelenVeri = dosya.readlines()

for ogrenci in gelenVeri:
    ogrNot = int(ogrenci[:-1].split("-")[1])
    ogrIsim = ogrenci[:-1].split("-")[0]
    notlarToplam = notlarToplam + int(ogrenci[:-1].split("-")[1])
    ogrenciSayisi += 1

    if ogrNot >= 0 and ogrNot < 11:
        notlar["0-10"] += 1
        kisiler["0-10"].append(ogrIsim)
    elif ogrNot >= 11 and ogrNot < 21:
        notlar["11-20"] += 1
        kisiler["11-20"].append(ogrIsim)
    elif ogrNot >= 21 and ogrNot < 31:
        notlar["21-30"] += 1
        kisiler["21-30"].append(ogrIsim)
    elif ogrNot >= 31 and ogrNot < 41:
        notlar["31-40"] += 1
        kisiler["31-40"].append(ogrIsim)
    elif ogrNot >= 41 and ogrNot < 51:
        notlar["41-50"] += 1
        kisiler["41-50"].append(ogrIsim)
    elif ogrNot >= 51 and ogrNot < 61:
        notlar["51-60"] += 1
        kisiler["51-60"].append(ogrIsim)
    elif ogrNot >= 61 and ogrNot < 71:
        notlar["61-70"] += 1
        kisiler["61-70"].append(ogrIsim)
    elif ogrNot >= 71 and ogrNot < 81:
        notlar["71-80"] += 1
        kisiler["71-80"].append(ogrIsim)
    elif ogrNot >= 81 and ogrNot < 91:
        notlar["81-90"] += 1
        kisiler["81-90"].append(ogrIsim)
    else:
        notlar["91-100"] += 1
        kisiler["91-100"].append(ogrIsim)

for anahtar in notlar.keys():
    if notlar[anahtar] != 0:
        print(Fore.LIGHTWHITE_EX,end="")
        print(f"\n{anahtar} arasında not alanlar : ")
        print(Fore.RED,end="")
        print(f"{notlar[anahtar]} adet öğrenci.")
        print(Fore.WHITE,end="")
        oran[anahtar] = str(round(notlar[anahtar] * 100/ogrenciSayisi,2)) + "%"
        for kisi in kisiler[anahtar]:
            print(kisi)

print(Fore.LIGHTWHITE_EX)
print("SINIF GENEL RAPOR")
print("-------------------------------------------------------")
print(f"Sınıf Öğrenci Sayısı : {ogrenciSayisi}")
print(f"Sınıf Öğrencilerinin Notları Toplamı : {notlarToplam}")
print(f"Sınıf NOT Ortalaması : {round(notlarToplam / ogrenciSayisi,2)}")
print(Fore.LIGHTYELLOW_EX,end ="")
print("Alınan notların aralıklara dağılımları :")

for anahtar,deger in oran.items():
    if deger != 0:
        print(f"{anahtar} : {deger}")

# En Yüksek Maksimum Not ve alanların listesi
rapor = makMin(gelenVeri)
rapor = list(rapor)

print(Fore.LIGHTWHITE_EX,end ="")
print(f"\nBu sınıfın En Yüksek Notu : {rapor[0]} ve Bu notu alan öğrencilerin Listesi : ")
print(Fore.WHITE,end ="")
for makNotKisi in rapor[1]:
    print(makNotKisi,end=" --- ")

# En Düşük Minimum not alanların listesi.
print(Fore.LIGHTWHITE_EX,end ="")
print(f"\nBu sınıfın En Düşük Notu : {rapor[2]} ve Bu notu alan öğrencilerin Listesi :")
print(Fore.WHITE,end ="")
for makNotKisi in rapor[3]:
    print(makNotKisi,end=" --- ")

print(Fore.LIGHTYELLOW_EX, end="")
print(f"\n\nSınıfın Notlar Arasındaki Açıklık : {rapor[0] - rapor[2]}")