You are on page 1of 26

Algoritmi i strukture

podataka
Osnove Pythona
Veleučilište Velika Gorica
Smjer: Održavanje računalnih sustava
Akademska godina 2019./2020.

Vladimir Bralić pred., mag. inf.


O Pythonu

• Objektno orijentiran programski jezik;

• Open source (GNU GPL licenca);

• Interpreter;

• Naredbe izvornog koda se spremaju u datoteku s


ekstenzijom .py (npr. demo.py).
Objekti u Pythonu
• S obzirom na objektnu orijentaciju svi osnovni
tipovi podataka su definirani kao klase koje su
ugrađene u Python.

• Neke od klasa su:


• klasa int za cijele brojeve,
• klasa float za decimalne brojeve,
• klasa str za nizove znakova,
• itd.
Varijable
• Varijable u Pythonu su reference na objekt.

• Općenita sintaksa je ObjectReference = value


(npr. x = 5, y = ‘ime’, itd.)

• Nema deklaracije i definiranja tipa podatka.

• Varijable se imenuju slično kao i u drugim jezicima,


razlikuju se mala i velika slova.
Varijable nast.
>>> a=2
>>> a
2
>>> b=3
>>> b
3
>>> a+b
5
>>> a
2
Pravila sintakse i stil pisanja
izvornog koda
• Python ne koristi točku zarez (;) za odvajanje linija
ali se ona može koristiti za odvajanje naredbi u
istom redu(nije preporučeni način programiranja).

• Blokovi naredbi se određuju uvlačenjem (najčešće 2


ili 4 znaka).
Operatori
• aritmetički operatori: +, -, *,**, /, //, %

• operatori uspoređivanja: <, <=, >, >=

• operatori jednakosti: ==, !=, is, is not,

• logički operatori: not, and, or


Prioriteti operatora
Operator Description
() Parentheses (grouping)
f(args...) Function call
x[index:index] Slicing
x[index] Subscription
x.attribute Attribute reference
** Exponentiation
~x Bitwise not
+x, -x Positive, negative

*, /, % Multiplication, division,
remainder
+, - Addition, subtraction
<<, >> Bitwise shifts
& Bitwise AND
^ Bitwise XOR
| Bitwise OR

in, not in, is, is not, <, <=, >, >=, Comparisons, membership,
<>, !=, == identity

not x Boolean NOT


and Boolean AND
or Boolean OR
lambda Lambda expression
Ispis podataka – funkcija print
• Ispis podataka na zaslon (konzole) se ostvaruje funkcijom print.
• Ispisuje sekvencu argumenta odvojenih praznim
mjestom nakon čega slijedi newline znak (prelazak u novi red).
• Bez parametara ispisuje samo prijelaz u novi red.

>>> print (123) >>> strA=5


123 >>> strB=6
>>> print (1,2,3) >>> povrsina=strA*strB
1 2 3
>>> print ("Površina kvadrata je", povrsina, "cm. ")
>>> print (1+2)
3
Unos podataka – funkcija input
• Funkcija input dozvoljava unos podataka (i pohranu
u neku varijablu t. objekt).

>>> a=input()
1
>>> a
'1'

• Input unos pohranjuje u varijablu tipa str (string).


Funkcija input nast.
• Funkcija input dozvoljava unos podataka koji će se ispisati
pri izvođenju (postavljanje pitanja).

• Ovi podaci pišu se u zagradu iza funkcije u obliku izraza


dakle to može biti neka konstanta vrijednost ili varijabla ili
kombinacija.
>>> ime=input("Kako se zovete? ") >>> pitanje= "Kako se zovete? "
Kako se zovete? Vladimir >>> a=input(pitanje)
>>> ime Kako se zovete? Vladimir
'Vladimir' >>> a
'Vladimir'
Grananje u programu
if 1==1:
print ("prvi izraz")
print ("drugi izraz")
Ispis programa:
prvi izraz
drugi izraz

if 1==2:
print ("prvi izraz")
print ("drugi izraz")
Ispis programa:
drugi izraz
Grananje u programu – nast.
if 1==1:
Početak
print ("prvi izraz") (exec ili run
else: module)
print ("nisam ispisao prvi izraz")
print ("drugi izraz")
Ispis programa: False True
If izraz
prvi izraz
drugi izraz
2. Naredba/izraz 1. Naredba/izraz
if 1==2:
print ("prvi izraz")
else: 3. Naredba/izraz
print ("nisam ispisao prvi izraz")
print ("drugi izraz")
Ispis programa: Kraj

nisam ispisao prvi izraz


drugi izraz
Grananje u programu – nast.
Početak
(exec ili run
module)

True False False False


if izraz elif izraz elif izraz

True True
4. Naredba/izraz
1. Naredba/izraz 2. Naredba/izraz 3. Naredba/izraz
(else izraz)

5. Naredba/izraz

Kraj
Grananje u program – nast.
• Tok izvođenja programa moguće je kontrolirati tj.
granati ga upotrebom if (hrv. „ako”) izraza.
• Izraz else (hrv. inače, u suprotnom) se koristi nakon
izraza if i dozvoljava nam da izvršimo izraz ili blok izraza
ako je rezultat uspoređivanja bio False.
• Izraz elif (srkaćeno else if) se koristi nakon izraza if i
dozvoljava nam da izvršimo novu provjeru novog izraza
uspoređivanja ako je rezultat prvog izraza
uspoređivanja bio False.
• Moguće je dodati više elif izraza iza jednog if izraza i
moguće ga je kombinirati sa else izrazom.
while petlja
• while (hrv. dok)
petlja izvršava
naredbu ili blok
naredbi dok je neki
uvjet ispunjen.
while petlja nast.
• Primjer koji ispisuje prvih 100 brojeva:
i=1
while i<101:
print (i)
i=i+1

• Primjer koji ispisuje istu rečenicu dok korisnik to želi:


pitanje="da"
while pitanje=="da":
print ("Danas je super dan!")
pitanje=input("Da ovo ponovim? ")
print ("Dosta je za danas.")
for petlja

• for (hrv. za, za


svaki) petlja
prolazi kroz sve
članove u nekoj
podatkovnoj
zbirci.
for petlja nast.
• Primjer for petlje:

rijec = input ("Upisite neku rijec: ")


brSlova=0

for slovo in rijec:


brSlova+=1
print ("U rijeci", rijec, "ima", brSlova, "slova.")
Sekvence
• U skevence tj. podatkovne zbirke spadaju strukture
podataka kao što su lista, tuple i str.

• Sekvence su objekti kreirani iz odgovarajućih klasa


(lista, tuple, str).
Sekvenca klase list
• Instanca liste sprema podatke (tj. objekte) u niz.

• Lista je bazirana na polju od n-elemenata kojima se


pristupa preko indeksa (od 0 do n-1).

• Python koristi znakove [ ] za oznaku liste pri čemu [


] je prazna lista.

• Napunjena lista izgleda npr. ovako [2, 4, 6].


Sekvenca klase tuple
• Objekt klase tuple (n-torka)
je nepromjenjiva verzija niza podataka.

• Python za oznaku objekta Tuple koristi obične


zagrade ( ).
Sekvenca klase str
• Klasa str u Pythonu je specijalno dizajnirana klasa koja
predstavlja nepromjenjiv niz znakova baziranih na
Unicode International character setu.

• Elementi stringa se moraju staviti unutar jednostrukih


ili dvostrukih navodnika (npr. „hello“ ili 'hello').
Funkcije i metode
• U Pythonu se radi razlika između funkcija i metoda.
• Naziv funkcija se koristi kao funkcija općeg značenja, tj. koja
nije specifična za neku klasu (npr. type(varijabla)).
• Metoda je članska funkcija klase koja se poziva nad
objektom (npr. lista.sort()).
• Funkcije se definiraju sa ključnom riječi def nakon čega
slijedi ime funkcije i lista parametara u zagradi te na kraju
dvotočka (:). Blok naredbi koje čine tijelo funkcije se uvlači u
odnosu na def.
• return naredba se stavlja za vraćanje vrijednosti iz funkcije.
• Prosljeđivanje parametara funkciji:
prizes = count(grades, A)
Primjer funkcije
def contains(data, target):
for item in target:
if item == data:
return True
return False
Datoteke
• Datoteke se otvaraju sa funkcijom open().
• fp = open( sample.txt ) – podrazumijevano
readonly.
• Zadavanjem parametara ‘r’, ‘w’, ‘a’ se definira
pristup datoteci (read, write ili append).
• U radu sa datotekom koristimo metode klase file:
read, readline, seek, tell, write, itd…
• Nakon završetka rada datoteku zatvaramo
upotrebom metode close().

You might also like