PROSEK NIZA
L = [1, 3, 5, 7, 9, 10]
print(len(L)) # broj elemenata niza dobijamo pozivanjem funkcije len(L)
print(sum(L)) # zbir elemenata niza dobijamo pozivanjem funkcije sum(L)
print("Prosek niza brojeva", L, "je", sum(L) / len(L))
Prosek niza brojeva [1, 3, 5, 7, 9, 10] je 5.833333333333333
# ako želimo da izlaz ima dve decimale koristićemo funkciju round(sum(L) / len(L), 2)
# i izlaz će biti 5.83
primer:
round(1.666666666, 2)
Out[6]: 1.67
Ako ćete u programu često koristiti prosek, onda je poželjno definisati novu funkciju prosek i samo je pozivati u daljim naredbama.
def prosek(L):
return sum(L) / len(L)
L = [1, 3, 5, 7, 9, 10]
print("Prosek niza brojeva", L, "je", prosek(L))
SORTIRANJE NIZA
L = [3, 1, 2, 5, 0, -1, 4]
L.sort()
In [9]: L
Out[9]: [-1, 0, 1, 2, 3, 4, 5]
L.sort(reverse=True) # sortiranje od većeg ka manjem
L
Out[10]: [5, 4, 3, 2, 1, 0, -1]
MEDIJANA NIZA
Ako su podaci sa kojima radimo „jako razbacani“ (imaju veoma skokovite vrednost i odstupanja) može se desiti da prosek nije dobar predstavnik celog niza. Zato se koristi medijana niza. Iz sortiranog niza se uzima element u sredini.
ako je dužina niza neparna medijana niza je element tačno na sredini niza;
ako je dužina niza parna uzimamo donju medijanu niza (manji od dva središnja elementa niza).
Ovo je definisana funkcija za medijanu
# ovo bi radilo samo za neparni broj elemenata niza, medijanu dobijamo iz sortiranog niza kada izdvojimo element na sredini
def donja_medijana(L):
n = len(L)
L.sort()
return L[n//2]
# ako želimo da funkcija radi i za paran broj elemenata, moramo funkciju korigovati
def donja_medijana(L):
L.sort()
n=len(L)
if (len(L)%2==0):
return L[n//2-1]
else:
return L[n//2]
Ovi zadaci se nalaze u radnoj svesci J04. https://mybinder.org/v2/gh/Petlja/Informatika_VIII-files/master
Zadaci:
1. У ћелију испод унеси списак својих оцена из информатике и онда израчунај њихов просек позивом функције prosek:
2. У ћелију испод уместо три упитника унеси функцију која ће ти омогућити да просек оцена израчунаш заокружен на две децимале, како је и уобичајено:
3. Једна збирка кратких прича за децу има 12 страна - по једна прича на свакој страни. Приче имају мали број речи, и то, по странама: 271, 354, 296, 301, 333, 326, 285, 298, 327, 316, 287 и 314. Колики је просечан број речи по причи у овој књизи?
4. Петар у дневнику има неколико оцена из информатике, свакако мање од 10. Знамо да су 25% његових оцена из информатике петице, а 12,5% његових оцена су тројке.
(а) Колико оцена из информатике има Петар у дневнику?
(б) Колико Петар има петица, а колико тројки из информатике?
(в) Колики је просек његових оцена из информатике, ако знамо да нема ниједну јединицу и ниједну двојку?
a=[1,2,2,4,3]
b=[3,4]
c=a+b
print(c)
#Ispis parnih brojeva iz liste
for i in c:
if i%2==0:
print(i)
#Prosek
prosek = sum(c)/len(c)
print(round(prosek,2))
c.append(4)
c.append(5)
print(c)
#[1, 2, 2, 3, 3, 4, 4, 5]
#Medijana
c.sort()
n = len(c)
if n%2==0:
#paran
print(c[n//2-1])
else:
#neparan
print(c[n//2])