Dvije tacke u Python-u oznacavaju da zelimo da udjemo u blok ispod te dvije tacke.
Vrlo je bitno da kada ulazimo u sami blok da imamo cetri space-a od lijeve strane i onda postoji
blok u kojem apsolutno mozemo da radimo nezavisne stvari
a = 3
b = 5
a = 3
b = 5
● Precedence
a = 3
b = 5
# Ako imamo samo IF i ELSE onda koristimo ovakvu sintaksu, a ako imamo else, elif i if
treba izbjegavati ovaj vid
res = " a je vece od b" if a > b else " a je manje ili jednako b"
print (res)
WHILE PETLJA:
i = 1
while i <= 10:
print (i)
i = i + 1 # Pisemo ovo kako ne bi dobili sve jedinice, vec kako bi islo 1, 2, ..., 10
# Zbir prvih deset prirodnih brojeva
i = 1
zbir = 0
print (zbir)
FOR petlja
for i in range (1, 11): # Uzmi i da je jednaka prvoj vrijednosti (1), kolika ce da bude
vrijednost za i = 1
print (i)
- For petlja se koristi umjesto While petlje, jer mnogi zaborave da uvecaju i
proizvod = 1 # Broj znamo da je paran ako posmatramo broj po modulu 2, odnosno kada broj
djelimo sa 2. Ukoliko je ostatak 1 onda nije paran, a ukoliko je ostatak 0 onda jeste
paran.
for i in range (1, 11): # Uzmi i da je jednaka prvoj vrijednosti (1), kolika ce da bude
vrijednost za i = 1
if i % 2 == 0: # Ako je i po modulu 2 jednako 0
proizvod = proizvod * i
print (proizvod)
# Za prvih deset prirodnih brojeva, naci proizvod parnih medju njima (ista zadatak kao
prethodni, ali malo drugacije preformulisan)
# Radicemo ga na malo drugaciji nacin u odnosnu na prethodni, odnosno odradicemo ga bez IF
proizvod = 1
for i in range (2, 11, 2): # Krecemo od od 2, kao od prvog parnog broja, idemo do 11, i to
za uvece koraka za dva uzimajuci brojeve 2, 4, 6, 8, 10
proizvod = proizvod * i
print (proizvod)
# Napisatiprogram koji vraca broj malih i broj velikih slova za zadati string.
# Primjer: upper_lower (" Hi Mr. Rober. How are you today?"),
# vraca (19, 4), 19 - broj malih slova, 4 - broj velikih slova.
# POMOC: da provjerite da li je karakter slovo koristiti isalpha metod.
print (f"Broj malih slova u recenici '{recenica}' je: {broj_malih_slova}, a broj velikih
slova u recenici '{recenica}' je: {broj_velikih_slova}.")
● Sa range
for elem in range(1,4):
print(elem)
- Ovo 'elem' koristi se samo kod for petlje. Ona se kreira tako sto joj se dodjeli vrijednost
1 u prvoj iteraciji, uveca se na dva i sve tako do cetvorke. Kada dodje do broja 4, nestane i
postoji samo unutar bloka.
● Šta ako oćemo da se petlja izvrši milijardu puta? Oće li se svaki put kreirati
elem i čuvati u memoriju?
○ Generatorima se ovo rješava, elem koristimo npr. u jednoj iteraciji i više nam nije
potrebna njegova vrijednosti, zašto onda da zauzima memoriju...
○ Kod Python-a v3 range je već generator, dok je kod Python-a xrange generator, a
range generiše listu od start_from do end_with
- Brisanje varijable se vrsi putem del od neke varijable koju zelimo da izbrisemo
2.4. Print formatting
● Postoji više načina za formatiranje print-a
○ print (“Korisnik ima %d godina” %vrijednost)
○ print (“Student ima prosjek %br1.br2f” %vrijednost)
■ br1 predstavlja broj mjesta do decimalne tačne, a br2 koliko decimala se
zaokružuje broj
○ help(function_name)
print(help(int))
#Uz pomoc ovog dobijamo informacije koje su nam potrebene
■ Npr. help(pow)
■ Argumenti odvjeni sa [] su opcioni
○ Isprobati hex(20)
■ Šta ako zapišemo string koji smo dobili bez string literala
(jednostruki/dvostruki/trostruki navodnici)?
○ help(“modules”)
■ Lista dostupnih modula/paketa - govorićemo o pojedinim modulima kasnije
kroz kurs
■ Probajte nakon importovanja nekog modula, help(ime_modula)
2.7. Kolekcije, uvod
● Kod Pythona se koriste 4 tipa kolekcija
● U nastavku ćemo analizirati svaki tip pojedinačno, i vidjeti šta su razlike i gdje
je poželjno koristiti jedan, a gdje drugi tip
2.8. Liste
● Neprimitivni ugrađeni tip podatka
● Sintaksa za deklarisanje [] ili list()
○ Isto kao nizovi kod drugih pj. [el1, el2, el3, …], indeksiranje kreće od nule
● Kod većine programskih jezika liste/nizovi sadrže isti tip podataka, kod Pythona to ne mora
da bude slučaj, skroz je validno da lista sadrži bilo koji tip podatka
○ Tako u jednoj listi možete da čuvate brojeve, stringove, druge liste, skupove, objekte
i sve ostale tipove podataka koje Python posjeduje
● Takođe, za liste nije potrebno unaprijed definisati veličinu, što kod većine
programskih jezika (gdje se liste koriste kao nizovi) to nije slučaj
● Pogledajmo primjer (lists, prvi dio)
PRIMJERI:
1.
for element in l1:
print (element) ovo nam je tabelirano
2.
print (proizvod)
3.
lista = [2, 3, 7, 4]
proizvod = 1
for broj in lista:
if broj % 2 != 0: # != -> nije jednako
proizvod = proizvod * (broj ** 3)
print(proizvod)
list_a = [1, 2, 3, 4]
list_b = list_a.copy() #moze i list_b = list(list_a)
list_b[0] = 10
print(list_a)
print(list_b)
5.
# Napisati program koji računa apsolutnu sumu svih negativnih parnih elemenata za unijeti
niz. Štampati sumu
print (suma)
2.9. Liste, neke od funkcija i metoda
● Navedimo neke korisne funkcije koje koriste liste:
○ len(list) - vraće dužinu liste
○ Indeksiranje i slicing radi isto kao i kod Stringova
○ Isto kao i kod Stringova, spajanje listi je moguće sa operatorom +
○ Šta će da vrati list * 3?
l = [ 10, 5, 7, 2, 1]
l.sort()
l.reverse ()
print(l) -> vraća nam listu u [10, 7, 5, 2, 1]
● Još metoda
○ list.count(elem) - koliko puta se elem pojavljuje u listi list
○ list.extend(elem) - slično kao i append s tim što se razlikuje kada dodajemo listu u
listu
l = [ 10, 5, 7, 2, 1]
l.sort()
l.reverse ()
l.extend([5, 10])
print(l)
l = [ 10, 5, 7, 2, 1]
l.sort()
l.reverse ()
l.append([5, 10]) # Dodaće nam kao listu unutar liste
print(l) -> vraća listu u ovom obliku [10, 7, 5, 2, 1, [5, 10]]
2.11. Liste, čuvanje po reference
● Šta znači čuvanje u varijablu po vrijednosti, a šta po referenci?
○ list_b = list(list_a) pravi kopiju liste lista_a
tuple = (1,2,3,4)
print (tuple)
● Glavni razlog zašto se koriste nekad prije nego liste je svojstvo immutable i što
zauzimaju manje memorije, pa se brže i kreiraju
○ Npr. dates za kalendar, jer ne želimo kasnije da mijenjamo takve podatke
○ Zašto zauzimaju manje memorije?
1.
def saberi (a, b): #Def se koristi kao oznaka za funkciju
return a + b # Ovim putem želimo da nam se vrati vrijednost a + b
x = saberi (3, 5) # 3 = a, 5 = b
print(x)
2.