You are on page 1of 6

#

# PODSETNIK - LISTE
#

# definisanje liste
a = [1, 2, 3, 4] # primer
liste koja sadrzi samo cele brojeve
b = ["Zdravo", "Marko", "Masinsko inzenjerstvo", "Racunarski alati"] # primer
liste koja sadrzi samo stringove
c = ["Petar", 2, 6.78, True, "Urbano inzenjerstvo"] # primer
liste koja sadrzi sve osnovne tipove podataka
d = [[1,3,4], [6, -7, 9], [2, 0, 1]] # primer
liste sa listama kao elementima (podlistama)

# clanovima liste pristupamo preko njihovih indeksa


imena = [" Ana", " Nikola", " Jovana", "Goran"]
print(imena[0]) # stampanje vrednosti clana liste sa indeksom 0 (prvi clan)
print(imena[-1]) # stampanje vrednosti clana liste sa indeksom -1 (poslednji
clan)
print(imena[2]) # stampanje vrednosti clana liste sa indeksom 2 (treci clan)

# liste su izmenjive, mozemo menjati svaki od clanova dodelom vrednosti po indeksu


ili menjati citavu listu
lista = [3 , 22 , 5 , 6 , 9 , 11] # pocetna lista celih brojeva
print(lista) # stampanje liste -> [3 , 22 , 5 , 6 , 9 ,
11]
lista[0] = 1 # pristupamo i dodeljujemo vrednost clanu
liste sa indeksom 0 (prvi clan)
lista[1] = 4 # pristupamo i dodeljujemo vrednost clanu
liste sa indeksom 1 (drugi clan)
print(lista) # stampanje izmenjene liste -> [1 , 4 , 5 ,
6 , 9 , 11]
lista = [5 , 7 , 8 , 9 , 10] # izmena cele liste
print(lista) # stampanje nove liste

# metode i funkcije za rad sa listama


# metode
niz = [1 , 5 , 3 , 6 , 12 , 7 , 11]

# metoda append - dodavanje na kraj liste


niz.append(5) # dodavanje clana 5 na kraj liste niz
niz.append(10) # dodavanje clana 10 na kraj liste niz
print(niz) # stampanje liste niz -> [1, 5, 3, 6, 12, 7, 11, 5, 10]

# metoda pop - izbacivanje poslednjeg clana liste


niz.pop() # izbacivanje poslednjeg clana liste
print(niz) # stampanje liste niz -> [1, 5, 3, 6, 12, 7, 11, 5]

# metoda insert - ubacivanje clana na odgovarajuce mesto preko indeksa


niz.insert(1, 100) # ubacivanje clana 100 na mesto indeksa 1
print(niz) # stampanje liste niz -> [1, 100, 5, 3, 6, 12, 7, 11, 5, 10]

# metoda index - vraca indeks (polozaj) navedenog clana u listi


print(niz.index(6)) # stampanje indeksa clana 6 -> 4

# metoda remove - uklanjanje clana koji se prosledjuje


niz.remove(11) # uklanjanje clana 11 iz liste
print(niz) # stampanje liste niz -> [1, 5, 3, 6, 12, 7, 5, 10]
# metoda sort - uredjivanje niza u rastuci (clanovi od najmanje ka najvecem)
niz.sort() # uredjivanje niza u rastuci niz
print(niz) # stampanje liste niz -> [1, 3, 5, 5, 6, 7, 10, 12]

# funkcije
# funkcija len() - izracunava i vraca ceo broj - duzinu niza
len(niz) # nakon izvrsavanja ove linije nista se nece promeniti,
neophodno je da vrednost koju dobijamo od len() smestimo u neku promenljivu
duzina = len(niz) # smestanje celog broja - duzine niza u promenljivu duzina
print(duzina) # stampanje vrednosti promenljive duzina -> 9

najveci = max(niz) # funkcija max - vraca vrednost najveceg clana liste


najmanji = min(niz) # funkcija min - vraca vrednost najmanje clana liste
suma = sum(niz) # funkcija sum - vraca vrednost sume clanova niza
sortirani = sorted(niz) # funkcija sorted - vraca sortiranu listu clanova liste

# razlika izmedju metode sort() i funkcije sorted()


niz = [1, 5, 3, 6, 12, 7, 5, 10]
sorted(niz) # nakon pozivanja funkcije sorted() pocetna lista se ne
menja, funkcija vraca novu listu koja je sortirana
print(niz) # stampanje nakon pozivanja funkcije sorted -> [1, 5, 3,
6, 12, 7, 5, 10]
sortirani = sorted(niz) # cuvanje liste koju funkcija sorted vraca u novoj
promenljivoj sortirani
niz.sort() # metoda sort vrsi izmenu pocetne liste u istoj liniji gde
je i pozvana ("izmena u mestu")
print(niz) # stampanje nakon pozivanja metode sort() -> [1, 3, 5, 5,
6, 7, 10, 12]

# osnovna for petlja


for i in range(101): # petlja po prvih 100 celih brojeva 0-100
print(f"i = {i}") # stampanje u formatu i = ...

# for petlja po indeksima i clanovima


studenti = ["Marko Petrovic", "Ana Nikolic", "Goran Milosevic", "Nikola Jovanovic",
"Marko Ivanovic"]

# for petlja po indeksima liste


for i in range(len(studenti)): # for petlja koja se ponavlja onoliko puta koliko
lista ima clanova
print(studenti[i]) # stampanje i-tog clana liste

print()

# for petlja po clanovima liste


for student in studenti: # iteracija kroz listu, direktno po clanovima
print(student) # stampanje pomocne promenljive koja uzima
vrednost tekuceg clana liste

print()

# dvostruka petlja po niskama iz liste i slovima iz niske


for student in studenti: # iteracija kroz listu, direktno po clanovima
for slovo in student: # ponovna iteracija kroz clanove liste, niske po
indeksima
print(slovo) # stampanje elemenata niski (karaktera(slova))

# while petlja
kvadrati = []
i = 0 # brojac, kontrolna promenljiva koja upravlja brojem
izvrsavanja while petlje
while i < 11: # uslov za izvrsavanje while petlje (dok je kontrolni
brojac manji od zadate vrednosti)
kvadrati.append(i*i) # telo petlje (popunjavanje liste vrednostima)
i = i + 1 # uvecavanje (izmena) vrednosti kontrolne promenljive
kako petlja ne bi postala beskonacna!

# while petlja - koriscenje logicke promenljive umesto brojaca


brojevi = [1 , 3 , 5 , 8 , 11 , 34] # pocetna lista brojeva
neparan_broj = True # logicka promenljiva koja kontrolise
izvrsavanje while petlje
i = 0 # inicijalizacija brojaca na vrednost 0
while neparan_broj: # pocetak while petlje - isto kao i while
neparan_broj == True:
if brojevi[i] % 2 != 0: # ispitivanje uslova - neparnost broja
print(brojevi[i]) # stampanje broja ukoliko je uslov
zadovoljen
else:
neparan_broj = False # promena vrednosti logicke promenljive -
prvi put kad u listi naidjemo na paran broj - kraj petlje
i = i + 1 # promena vrednosti brojaca

# for i while petlja mogu da rade na isti nacin


suma_for = 0
for i in range(10):
suma_for = suma_for + i

suma_while = 0
brojac = 0
while brojac < 10:
suma_while = suma_while + brojac
brojac = brojac + 1

print(f"Suma dobijena for petljom {suma_for}")


print(f"Suma dobijena while petljom {suma_while}")

#
# NAREDBE BREAK I CONTINUE
#

# naredba break - prilikom pozivanja naredbe break prekida se izvrsavanje cele


petlje
niz = [12, 5, 7, 3, 0, 1, 6, 0, 4] # pocetna lista brojeva

for x in niz: # iteracija kroz listu brojeva, clan po clan


if x == 0: # ispitivanje uslova, da li je clan liste 0
break # pozivanje naredbe break - napustanje cele
petlje kada se naidje na vrednost 0
else: # druga grana programa
print(f'x = {x}') # stampanje vrednosti tekuceg clana liste x =
12, x = 5, x = 7, x = 3

# naredba continue - prilikom pozivanja naredbe continue prekida se izvrsavanje


tela petlje, odmah pocinje nova iteracija petlje
brojevi = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

for broj in brojevi: # iteracija po clanovima liste brojevi


if broj % 2 == 0: # ispitivanje da li je tekuci clan liste
paran broj
continue # pozivanje naredbe continue - prekida se
tekuca iteracija i vraca se na pocetak petlje sa novim clanom
print(broj) # stampanje tekuceg clana -> 1, 3, 5, 7, 9

# druga verzija - for petlja po indeksima


for i in range(len(brojevi)):
if brojevi[i] % 2 == 0:
continue
print(brojevi[i])

#
# NAPREDNI RAD SA LISTAMA
#

# dodavanje clana u listu iz opsega brojeva


#
# stari nacin - for petlja
brojevi1 = [] # prazna lista
for i in range(101): # for petlja 0-100
brojevi1.append(i) # dodavanje tekuceg broja u listu
print(brojevi1) # stampanje liste brojevi1 -> [0, 1, 2, 3, ...., 98, 99,
100]

# napredno kreiranje liste


# lista = [clan_liste for i in opseg]
brojevi2 = [i for i in range(101)] # kreiramo listu brojevi dodavanjem clan po
clan iz opsega brojeva 0-100
print(brojevi2) # stampanje liste brojevi2 -> [0, 1, 2,
3, ...., 98, 99, 100]

# kreiranje liste izracunavanjem nad clanovima nekog opsega


# stari nacin
dvostruki1 = [] # prazna lista
for i in range(21): # for petlja 0-20
dvostruki1.append(i*2) # dodavanje tekuceg broja u listu
print(dvostruki1) # stampanje liste dvostruki1 -> [0, 1, 2,
3, ...., 19, 20]

# napredni nacin
dvostruki2 = [i*2 for i in range(21)] # nakon izracunavanja nad clanom iz opsega
dodajemo clan u novu listu
print(dvostruki2) # stampanje liste dvostruki2 -> [0, 1, 2,
3, ...., 19, 20]

# kreiranje liste od clanova iz nekog opsega koji zadovoljavaju neki uslov


# stari nacin
kvadrati_deljivi_sa_5 = [] # prazna lista
for broj in range(0, 101): # for petlja 0-100
if broj % 5 == 0: # uslov da je broj deljiv sa 5
kvadrati_deljivi_sa_5.append(broj*broj) # dodavanje kvadrata broja u
listu ako je ispunjen uslov
print(kvadrati_deljivi_sa_5) # stampanje vrednosti -> [0,
25, 100, 225, ..., 10000]

# napredni nacin
# lista = [clan_liste for i in opseg ako vazi uslov]
kvadrati_deljivi_sa_5 = [broj*broj for broj in range(0, 100) if broj % 5 == 0] #
dodavanje izracunatog clana iz opsega u listu ako vazi uslov
print(kvadrati_deljivi_sa_5) #
stampanje vrednosti -> [0, 25, 100, 225, ..., 10000]

# dodavanje clanova iz postojece liste iteracijom kroz listu, ako je uslov ispunjen
niz = [1, 6, 8, 3, 7, 12, 67, -3, 8, 90, 44, 2, 6, -87, 11, 90, 32, -66, 9] #
pocetni niz brojeva

lista = [broj for broj in niz if broj % 9] #


kreiramo listu brojeva iz niza brojeva ako je broj deljiv sa 9
print(lista) #
stampamo listu -> [90, 90, 9]

# napredno kreiranje liste unosom korisnika


# lista = [unos korisnika for i in opseg(broj ponavljanja, broj dodavanja u listu)]
lista_korisnika = [int(input("Dodaj ceo broj u listu: ")) for i in range(5)] #
dodavanje clana u listu nakon unosa korisnika
print("Kreirana lista:", lista_korisnika) #
stampanje kreirane liste

# napredno kreiranje ugnjezdjenih listi, listi koje sadrze liste (matrice)


# stari nacin
n = int(input("Unesi dimenzije matrice: ")) # ucitavanje broja redova i
kolona matrice(n x n)
matrica = [] # prazna lista u koju cemo
uneti clanove - matrica
for i in range(n): # for petlja koja se ponavlja
n puta, ucitvanje redova matrice
red = [] # prazna lista u koju se
dodaju clanovi reda matrice
for j in range(n): # for petlja koja se ponavlja
n puta, ucitavanje kolona matrice
clan = int(input("Unesi clan matrice: ")) # ucitavanje sledeceg clana
reda matrice
red.append(clan) # dodavanje ucitanog clana u
red matrice
matrica.append(red) # dodavanje celog reda u listu
matrica

# napredni nacin kreiranja matrice


# matrica = [[clan koji se dodaje je podlista] for i in opseg(broj redova/kolona)]
n = int(input("Unesi broj redova i kolona (n) kvadratne matrice: "))
A = [[int(input(f"Unesi clan matrice A[{i}][{j}]")) for j in range(n)] for i in
range(n)]

# za n = 3 i unos redom 1, -5, 3, 6, 99, 2, -4, 0, 8

# A = [[1, -5, 3],


# [6, 99, 2],
# [-4, 0, 8]]

You might also like