You are on page 1of 98

Core Python Programming

Uvod u programiranje drugi dio


Podsjetimo se prethodnih termina
Koji protokol se koristi na Internetu za slanje
zahtjeva web serveru i dobijanje odgovora?

1. HTML
2. HTTP
3. FTP
4. SMTP
Za prebacivanje fajlova sa PC-a na server, služi nam
koji protokol?

1. HTML
2. HTTP
3. FTP
4. SMTP
5. RTP
6. WTF
TCP/IP je:

1. Web protokol
2. Transmission control protocol/internet
protocol
3. Program koji preuzima zahtjeve i šalje
odgovore
4. Funkcija u pythonu
5. Keks?
Pravilan python tag je :

1. ?py;
2. <py>
3. </Py>
4. #PY
5. Python nema tagove
Odaberite validne nazive varijabli

1. A = „5‘
2. B = „Atif“
3. C = Atif
4. D = ‚Atif“
5. E = <-9555
Koja ekstenzija aktivira python interpreter

• .python
• .pyp
• .pyextension
• .py
Koja funkcija daje informaciju o Python verziji?

• Python(version)
• Python –version
• Python –-version
• Pythonv():
Ispraviti greške u kodu :

• x = „atif‘
y = 23
print(„Skolujem se na IT akademiji)
print(„zovem se“ + x)
Imam (y godina)
Python Booleans
Uvod u programiranje drugi dio
Booleans

• Booleans data type ima dvije vrijednosti: true i false. U


programiranju nam je često potrebno da znamo da li je if
ekspresija tačna ili netačna.

print(10 > 9)
print(10 == 9)
print(10 < 9)
Booleans

• Bool() funkcija nam dopusta da provjerimo bilo koju


vrijednost, te nam vraća True ili false kao rezultat.

Print(bool(„Hello“))
print(bool(15))
Booleans

• X = „hello“
y = 15

print(bool(x))
print(bool(y))
Booleans

• Skoro sve vrijednosti su „tačne“ (true).


• Svaki string je true, osim praznog stringa
• Svaki broj je true, osim 0
• Svaka lista, tuple, set ili dictionary su True, osim onih praznih.

Bool(„abc“)
Bool(123)
• Bool([„apple“, „cherry“, „banana“])
Booleans

• Koje to vrijednosti nam vraćaju false kao rezultat?

Bool(False)
bool(None)
bool(0)
bool(„“)
• Bool(())
bool([])
bool({})
Booleans challange

• Print(10>9)
• Print(10<9)
• Print(10<19)
• Print(10>3)
• Print(10+5)
Python Booleans
Uvod u programiranje drugi dio
Python operatori

• Python operatore dijelimo u sljedeće grupe:

1. Arithmetic operators
2. Assignment operators
3. Comparison operators
4. Logical operators
5. Identity operators
6. Membership operators
7. Bitwise operators
Python artimetički operatori

• Artimetičke operatore koristimo da bismo ostvarili


raznorazne matematičke operacije
Python artimetički operatori

• Artimetičke operatore koristimo da bismo ostvarili


raznorazne matematičke operacije

x=5
y=3
print(x+y)

• x = 15
y=2
print(x//y)
Python assignment operatori

• Assignment operatore koristimo da bi dodjelili vrijednost


varijabli
Python assignment operatori

• Assignment operatore koristimo da bi dodjelili dodatnu


vrijednost varijabli

• X=5
X+=3
X-=3
X*=3

Ispišite vrijednost X poslije svakog uvećanja/smanjenja X-a.


Python comparsion operatori

• Comparsion operatore koristimo da bi uporedili dvije


vrijednosti
Python comparsion operatori

• Comparsion operatore koristimo da bi uporedili dvije


vrijednosti

• X=5
Y=3

print(X==Y)

• X=5
Y=3
print(X != Y)
Python logical operatori

• Logical operatore koristimo da bi uporedili dva conditional


statementa
Python logical operatori

• Logical operatore koristimo da bi uporedili dva conditional


statementa

• X=5
print(X > 3 and x < 10)

• X=5
print(not(x > 3 and x < 10))
Python identity operatori

• Identity operatore koristimo da uporedimo objekte, da li su


jednaki, da li imaju istu memorijsku lokaciju, da li su to ustvari
ista dva objekta itd.
Python identity operatori

• Identity operatore koristimo da uporedimo objekte, da li su


jednaki, da li imaju istu memorijsku lokaciju, da li su to ustvari
ista dva objekta itd.

• X = [„apple“, „banana“]
• Y = [„apple“, „banana“]
z=x
• Print(x is z)
• Print(x is y)
• Print(x == y)
Python membership operatori

• Membership operatore koristimo da testiramo da li se


određena sekvenca nalazi u objektu.
Python membership operatori

• Membership operatore koristimo da testiramo da li se


određena sekvenca nalazi u objektu.

• x = ["apple", "banana"]

• print("banana" in x)
Python bitwise operatori

• Bitwise operatore koristimo da uporedimo binarne brojeve.


Webchallange #1

• Deklarisati tri varijable x,y,z te im dodjeliti vrijednosti 12,15,34.


Na ekranu prikazati njihov zbir, njihovu razliku te njihov
produkt.

• Deklarisati varijablu a = 10. Putem AND operatore prikazati na


ekranu a < 11 i a > 23. Provjeriti da li smo dobili true ili false
rezultat

• Provjeriti da li se u x = [„banana“ , „kivi“ , „narandza“] nalazi


vrijednost kivi koristeći in membership operator.


Webchallange #1

• Deklarisati tri varijable x,y,z te im dodjeliti vrijednosti 12,15,34.


Na ekranu prikazati njihov zbir, njihovu razliku te njihov
produkt. Koristeći comparsion operatore, provjeriti da li je
(true/false) x > z, y < z, x > y. Upotrebiti or operator i ispisati x > z
ili z > y. Provjeriti da li smo kao rezultat dobili true/false.
Python collections ( arrays )

• Imamo četiri vrste collection data type-ovea u python


programskom jeziku

1. List is a collection which is ordered and changeable. Allows


duplicate members.
2. Tuple is a collection which is ordered and unchangeable.
Allows duplicate members.
3. Set is a collection which is unordered and unindexed. No
duplicate members.
4. Dictionary is a collection which is unordered, changeable and
indexed. No duplicate members.
Python collections ( arrays )

• Kada biramo tip podatka za bilo koju varijablu, jako je bitno da


razumijemo zašto koristimo upravo taj tip, na taj način
sprecavamo potencijalne probleme u kodu te povećavamo
efektivnost i sigurnost samog koda.

LIST :

• Thislist = [„apple“, „banana“, „cherry“]


• Print(thislist)
• Print(thislist[1])
• Print(thislist[-1])
• Print(thislist[2:5])
Python collections ( arrays ) - LISTS

• Da bi provjerili koliko lista ustvari ima „itema“ koristimo len()


funkciju koju smo spomenuli na prethodnom predavanju.

• Thislist = [„apple“, „banana“, „cherry“]


print(len(thislist))

• Da bi dodali item na kraj list, koristimo append() metodu.


Thislist = [„apple“, „banana“, „cherry“]
thislist.append(„orange“)
print(thislist)
Python collections ( arrays ) - LISTS

• Da bi dodali item na neku od pozicija ( tamo gdje nam je


ustvari taj item potreban ), koristimo insert() metodu:

thislist = ["apple", "banana", "cherry"]


thislist.insert(1, "orange")
print(thislist)

• Da bi sklonili neki item iz liste koristimo remove() metodu.

• thislist = ["apple", "banana", "cherry"]


thislist.remove("banana")
print(thislist)
Python collections ( arrays ) - LISTS

• Da bi sklonili neki od item-a iz liste putem indeksiranja,


koristimo pop() metodu(ili ako nema indeksa() sklonit će zadnji
item iz liste).

thislist = ["apple", "banana", "cherry"]


thislist.pop()
print(thislist)
Python collections ( arrays ) - LISTS

• Da bi obrisali listu ili indeks iz liste koristimo del metodu.

thislist = ["apple", "banana", "cherry"]


del thislist

• Clear metoda izbrise sve vrijednosti iz liste :

thislist = ["apple", "banana", "cherry"]


thislist.clear()
print(thislist)
Python collections ( arrays ) - LISTS

• Kopiranje liste ne možemo izvršiti na način da napišemo


lista1 = lista 2. Na taj način, mi smo izjednačili dvije varijable, te
bilo koja promjena na listi1 uticat će direktno na listu2. Da bi
kopirali specificnu listu koristimo ili copy() metodu ili list()
metodu.

• thislist = ["apple", "banana", "cherry"]


mylist = thislist.copy()
print(mylist)

• thislist = ["apple", "banana", "cherry"]


mylist = list(thislist)
print(mylist)
Python collections ( arrays ) - LISTS
• Da bi prikazali dvije liste u jednom te istom redu na ekranu,
koristimo + operator

• list1 = ["a", "b" , "c"]


list2 = [1, 2, 3]

list3 = list1 + list2


print(list3)

Možemo koristiti i extend() metodu da bi dodali list2 na kraj list1 :


list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

list1.extend(list2)
print(list1)
Python collections ( arrays ) - LISTS
• Na slici mozemo vidjeti sve pobrojane metode koje možemo
koristiti u Python-u ( kada je riječ o listama ) :
Webchallange #2
• Definisati listu fruits sa vrijednostima banana, jabuka,
narandza. Prvobitno provjeriti da li se sve tri vrijednosti nalaze
u listi koristeći IN keyword, zatim provjeriti dužinu liste te
putem indeksiranja prikazati [1] član liste.

• Kreirati dvije liste, list1 i list2, dodjeliti im random vrijednosti,


zatim putem + operatora i extend() metode dodati listu2 na
kraj liste1

• Kreirati tri liste sa random vrijednostima, iz prve liste putem


remove() metode skloniti [1] clan liste, u drugu listu na [0]
poziciju dodati član „Itakademija“, te koristeći copy() metodu
kreirati listu4 koja će sadržavati iste vrijednosti kao lista3.
Prikazati sve liste na ekranu.
Python collections ( arrays ) - TUPLES
• Tuple je ordered collection koji je nepromjenjiv. U pythonu
tuples pisemo u () (obicnim zagradama).

• Thistuple = („apple“, „banana“, „cherry“)


print(thistuple)

• Gotovo sve što smo ranije definisali za liste vrijedi i za tuples,


tako da ćemo se na sljedećem slajdu podsjetiti ponovno istih
stvari
Python collections ( arrays ) - TUPLES
• thistuple =
("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(thistuple[2:5])

• thistuple = ("apple", "banana", "cherry")


print(thistuple[1])

• thistuple = ("apple", "banana", "cherry")


print(thistuple[-1])

• thistuple =
("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(thistuple[-4:-1])
Python collections ( arrays ) - TUPLES
• Buduci da smo rekli da je TUPLE nepromjenjiv, to znači da ne možemo
mjenjati vrijednosti njegovih članova kao što smo mogli u listama. Da bi
promjenili vrijednosti u tuple-u moramo ga konvertovati u listu, zatim
promjeniti vrijednost, te ga vratiti u prvobitni data-type, tj tuple.

• x = ("apple", "banana", "cherry")


y = list(x)
y[1] = "kiwi"
x = tuple(y)

print(x)
Python collections ( arrays ) - TUPLES
• Da bi provjerili da li se apple nalazi u tuple-u koristimo in keyword :

• thistuple = ("apple", "banana", "cherry")


if "apple" in thistuple:
print("Yes, 'apple' is in the fruits tuple")

• Šta radi sljedeća metoda?

• thistuple = ("apple", "banana", "cherry")


print(len(thistuple))
Python collections ( arrays ) - TUPLES
• Kada želimo kreirati tuple sa samo jednom vrijednošću, ne
smijemo zaboraviti , ( zarez ) na kraju, prije zatvaranja zagrade.

• thistuple = ("apple",)
print(type(thistuple))

#NOT a tuple
thistuple = ("apple")
print(type(thistuple))
Python collections ( arrays ) - TUPLES
• Ne možemo dodati vrijednost u tuple, budući da je ovaj
data-type nepromjenjiv.

• thistuple = ("apple", "banana", "cherry")


thistuple[3] = "orange" # This will raise an error
print(thistuple)
Python collections ( arrays ) - TUPLES
• Putem del keyworda možemo obrisati kompletan tuple

• thistuple = ("apple", "banana", "cherry")


del thistuple
print(thistuple) #this will raise an error because the tuple no longer
exists
Python collections ( arrays ) - TUPLES
• tuple1 = ("a", "b" , "c")
tuple2 = (1, 2, 3)

tuple3 = tuple1 + tuple2


print(tuple3)

Šta izbacuje navedeni kod?


Python collections ( arrays ) - TUPLES
• Ovdje su navedene Python metode koje možemo koristiti sa data-type
TUPLES :
Webchallange #3
• Fruits(„apple“, „banana“, „cherry“) na ekranu prikazati prvi član fruits
porodice ☺

• Kreirati 3 različita tuple-a, prvi konvertovati u listu, dodati mu još jedan


član „Itakademija“, vratiti ga u tuple te prikazati na ekranu

• Putem del metode obrisati 2 tuple-a iz prethodnog zadatka

• Kreirati 2 tuple-a te ih putem + operatora prikazati na ekranu.


Python collections ( arrays ) - SETS
• Set je kolekcija koja koja je unordered i unindexed. U python-u sets
pišemo sa {} (vitičastim zagradama)

• thisset = {"apple", "banana", "cherry"}


print(thisset)
Python collections ( arrays ) - SETS
• Budući da je set unordered, ne znamo kako će nam se poredati članovi
pri ispisu istoga. Ne možemo pristupiti indexu nekog od članova seta,
budući da je on unordered (nema tačno poredan red članova).

• thisset = {"apple", "banana", "cherry"}

print("banana" in thisset)

Šta će ispisati navedeni kod?


Python collections ( arrays ) - SETS
• Jednom kada kreiramo set ne možemo mjenjati njegove članove, ali
možemo dodati nove. Add() metodu koristimo ukoliko želimo dodati
jedan član set-a, a update() metodu ako želimo dodati više članova
set-a.

• thisset = {"apple", "banana", "cherry"}


thisset.add("orange")
print(thisset)

• thisset = {"apple", "banana", "cherry"}


thisset.update(["orange", "mango", "grapes"])
print(thisset)
Python collections ( arrays ) - SETS
• thisset = {"apple", "banana", "cherry"}

print(len(thisset))

• thisset = {"apple", "banana", "cherry"}

thisset.remove("banana")

print(thisset)
Python collections ( arrays ) - SETS
• thisset = {"apple", "banana", "cherry"}
x = thisset.pop()
print(x)
print(thisset)

• thisset = {"apple", "banana", "cherry"}


thisset.clear()
print(thisset)

• hisset = {"apple", "banana", "cherry"}


del thisset
print(thisset)
Python collections ( arrays ) - SETS
• Da bi prikazali sve članove oba seta u jednom novom setu, koristimo
union() ili update() metodu.

• set1 = {"a", "b" , "c"}


set2 = {1, 2, 3}
set3 = set1.union(set2) – faksticki „sabira“ dva seta
print(set3)

• set1 = {"a", "b" , "c"}


set2 = {1, 2, 3}
set1.update(set2) – ubacuje članove seta-2 u set1.
print(set1)
Python collections ( arrays ) - SETS
• Listu set metoda možemo da vidimo ispod
Challange #3
• Kreirati dva seta sa random vrijednostima, koristeći update() metodu
ubaciti članove drugog seta u prvi set.

• Uraditi isto to koristeći union() metodu.

• Koristeći clear() metodu isprazniti kompletan set

• Koristeći del keyword obrisati kompletan set


Python collections ( arrays ) - DICTIONARIES
• Dictionary je collection koji je unordered, promjenjiv i indeksiran. U
pythonu, dictionaries pisemo u {} i oni imaju neke keys i values.

auto = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
print(auto)
Python collections ( arrays ) - DICTIONARIES
• Budući da su dictionaries indexable, možemo pristupiti članovima :

x = thisdict["model"]

Također postoji metoda get() koja nam daje isti rezultat.

• x = thisdict.get("model")
Python collections ( arrays ) - DICTIONARIES
• Možemo mjenjati vrijednost svim članovima navedenog data-type-a.

auto = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
auto["year"] = 2018
Python collections ( arrays ) - DICTIONARIES
• Da provjerimo da li se neki od „ključeva“ nalazi u dictionary-u, koristimo
in keyword

auto = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
if "model" in auto:
print("Yes, 'model' is one of the keys in the auto dictionary")

• Da bi ispisali broj članova dictionary-a koristimo


print(len(thisdict))
Python collections ( arrays ) - DICTIONARIES
• Da bi dodali neki od članova u dictionary, koristimo novi ključ te mu
dodajemo vrijednost

auto = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
auto["color"] = "red"
print(auto)
Python collections ( arrays ) - DICTIONARIES
• Da bi uklonili neki od članova koristimo pop() metodu.

auto = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
auto.pop("model")
print(auto)
Python collections ( arrays ) - DICTIONARIES
• Del keyword briše jedan od članova sa specifično definisanim
ključem(key)

auto = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
del auto["model"]
print(thisdict)
Python collections ( arrays ) - DICTIONARIES
• thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
del thisdict
Python collections ( arrays ) - DICTIONARIES
• thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
thisdict.clear()
print(thisdict)
Python collections ( arrays ) - DICTIONARIES
• Kopiranje direktorija vršimo putem copy() metode.

thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
thisdict1 = thisdict2
print(thisdict2)

Šta radi navedeni kod?


Python collections ( arrays ) - DICTIONARIES
• Kopiranje direktorija vršimo putem copy() metode.

thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
mydict = thisdict.copy()
print(mydict)
Python collections ( arrays ) – NESTED
DICTIONARIES
• myfamily = {
"child1" : {
"name" : "Emil",
"year" : 2004
},
"child2" : {
"name" : "Tobias",
"year" : 2007
},
"child3" : {
"name" : "Linus",
"year" : 2011
}
}
Python collections ( arrays ) – NESTED
DICTIONARIES
• child1 = {
"name" : "Emil",
"year" : 2004
}
child2 = {
"name" : "Tobias",
"year" : 2007
}
child3 = {
"name" : "Linus",
"year" : 2011
}

myfamily = {
"child1" : child1,
"child2" : child2,
"child3" : child3
}
Python collections ( arrays ) – DICTIONARY
METHODS
Dictionary Challange #5

• Kreirati dictionary sa nazivom mobitel i dodjeliti mu keys


brand, memorysize, camerapixels. Prikazati navedeni
dictionary na ekranu.

• Iz prethodnoh zadatka uzeti key brand i iscitati njegovu


vrijednost na ekranu

• Promjeniti broj pixela u dictionary-u na 28.

• Provjeriti da li se key brand nalazi u dictionary-u.

• Provjeriti da li se key touch nalazi u dictionary-u.


Dictionary Challange #5

• Napraviti myfamily dictionary koji će sadržavati tri druga


dictionary-a. Svaki od dictionary-a treba da predstavlja jednog
člana vaše obitelji (njegovo ime, godine, visina, težina).
Prikazati prvobitno svakog od člana porodice na ekranu, zatim
prikazati kompletnu familiju u sljedećem redu.
Dictionary Challange #5

• Napraviti myfamily dictionary koji će sadržavati tri druga


dictionary-a. Svaki od dictionary-a treba da predstavlja jednog
člana vaše obitelji (njegovo ime, godine, visina, težina).
Prikazati prvobitno svakog od člana porodice na ekranu, zatim
prikazati kompletnu familiju u sljedećem redu.
Dictionary Challange #5

• Napraviti myfamily dictionary koji će sadržavati tri druga


dictionary-a. Svaki od dictionary-a treba da predstavlja jednog
člana vaše obitelji (njegovo ime, godine, visina, težina).
Prikazati prvobitno svakog od člana porodice na ekranu, zatim
prikazati kompletnu familiju u sljedećem redu.
Dictionary Challange #5

• Napraviti myfamily dictionary koji će sadržavati tri druga


dictionary-a. Svaki od dictionary-a treba da predstavlja jednog
člana vaše obitelji (njegovo ime, godine, visina, težina).
Prikazati prvobitno svakog od člana porodice na ekranu, zatim
prikazati kompletnu familiju u sljedećem redu.
Challange #6

1) Koja je razlika između 10 / 3 i 10 // 3?


2) Koji je rezultat 10 ** 3?
3) Ako imamo (x = 1), Koliko će x iznositi nakon što dodamo (x += 2)?
4) Kada koristimo „““ da definišemo string?
5) Ako imamo varijablu x = „John Smith“ kako da dobijemo broj slova koji
sadrži John Smith?
6) Koji operator koristimo da kažemo da x nije jednako y?
7) Koji operator koristimo da bi dobili ostatak djeljenja?
8) Koja je razlika između liste i tuple-a?
9) Koja je razlika između dictionary-a i seta?
Coding Challange #7
Coding Challange #7
Coding Challange #7
Coding Challange #7
Coding Challange #7
Coding Challange #7
Coding Challange #7
Coding Challange #7
Coding Challange #7
Coding Challange #7
Coding Challange #7
Coding Challange #7
Coding Challange #7
Coding Challange #7
Coding Challange #7
Hvala na pažnji.
Uvod u programiranje drugi dio

You might also like