You are on page 1of 62

Programski jezik

Python
Operacijski sustavi
Studij: Sveučilišni preddiplomski studij informatike
Asistent: Doc. dr. sc. Vanja Slavuj
Sadržaj prezentacije (1)
• Rad s interpretorom Pythona
• interaktivni način rada vs. pokretanje programa pomoću interpretora
• Tipovi podataka
• varijable
• osnovni tipovi podataka i podatkovne zbirke
• operatori
• Struktura programa
• struktura grananja
• struktura ponavljanja

Operacijski sustavi 2
Sadržaj prezentacije (2)
• Funkcije i metode
• rad s ulaznim vrijednostima
• rad s datotekama – pisanje, čitanje i dodavanje sadržaja
• Korisničke funkcije u Pythonu
• definiranje i pozivanje funkcija
• Dodatni moduli Pythona
• uključivanje modula i primjena funkcija modula

Operacijski sustavi 3
Cilj nastavne cjeline
Cilj nastavne cjeline ponoviti je osnove programskog
jezika Python, uključujući način pripreme i izvođenja
programa, sintaksu, temeljne programske strukture te
ugrađene funkcije i metode za rad s ulazom, osnovnim
tipovima podataka, podatkovnim zbirkama i datotekama.

Operacijski sustavi 4
Ishodi učenja
• Nakon uspješno savladane cjeline, studenti će moći:
• pokrenuti naredbe programskog jezika Python koristeći interaktivni način rada
i interpretor u sučelju naredbenog retka
• nabrojati tipove podataka programskog jezika Python
• razlikovati učinke različitih operatora programskog jezika Python (aritmetički,
relacijski, logički, prošireno pridruživanje) nad jednostavnim operandima
• primijeniti odgovarajuće programske strukture za rješavanje jednostavnijih
problemskih zadataka
• opisati razliku između funkcije i metode u programskom jeziku Python

Operacijski sustavi 5
Ishodi učenja (nastavak)
• koristiti jednostavne ugrađene funkcije i metode programskog jezika Python
nad odgovarajućim tipovima podataka
• prikazati osnovne operacije s datotekama u programskom jeziku Python
koristeći odgovarajuće funkcije i metode
• napisati i pokrenuti vlastitu (korisničku) funkciju
• uključiti odgovarajući modul s ciljem korištenja njegovih funkcija koje nisu
osnovni dio programskog jezika Python

Operacijski sustavi 6
Uvod
Programski jezik Python
• Programski jezik visoke razine kojeg odlikuje jednostavna sintaksa
• omogućava brzo stvaranje i ispitivanje programa
• stavlja naglasak na čitljivost koda
• posjeduje vrlo bogatu standardnu biblioteku
• podupire proceduralni, ali i objektno usmjereni pristup programiranju
• Besplatno se može preuzeti za velik broj platformi
• trenutna inačica je Python 3(.8.x)
• inačica Python3 nije kompatibilna s ranijom inačicom Python 2

Operacijski sustavi 8
Rad s interpretorom
Pythona
Interaktivni način rada
• Pokretanjem naredbe python3 u sučelju naredbenog retka,
dobivamo ljusku za interpretaciju programskog jezika Python
• pokreće se tzv. interaktivno sučelje Pythona
• odzivni znakovi >>> na početku retka označavaju spremnost za unos sljedeće
naredbe i njezinu interpretaciju
• odzivni znakovi ... označavaju nastavak prethodnog retka odn. cjelinu s
prethodnim retkom
• izlaz iz interaktivnog načina rada: CTRL + D ili exit()

Operacijski sustavi 10
Primjer (1) – interaktivni način rada

Operacijski sustavi 11
Pokretanje programa pomoću interpretora
• Naredbe programskog jezika Python možemo napisati i spremiti u
tekstualnu datoteku čiji naziv završava sa .py
• interpretacija se pokreće pozivanjem interpretora nad datotekom
python3 datoteka.py

Operacijski sustavi 12
Python dokumentacija
• Python posjeduje vrlo detaljnu i kvalitetnu dokumentaciju
• posebnu pozornost obratiti na Tutorial i Standard Library
• dostupni su i vodič za početnike te onaj za napredne korisnike s primjerima
• savjetuje se često korištenje dokumentacije tijekom izvršavanja preostalih
aktivnosti kolegija

Operacijski sustavi 13
Tipovi podataka
Osnovni tipovi podataka
• Osnovni tipovi podataka u Pythonu su:
• cijeli broj (engl. integer)
• broj s pomičnom točkom (engl. float)
• logički ili Booleov tip (engl. boolean)
• znakovni niz (engl. string)
• Dodatno postoji i tip podataka None
• javlja se kada funkcija ne vraća vrijednost

Operacijski sustavi 15
Podatkovne zbirke
• Osnovni tipovi podataka često se organiziraju u složenije skupine
podataka ili podatkovne zbirke
• Složeniji tipovi podataka sa slijednim razmještajem elemenata su:
• znakovni niz (engl. strings)
• n-torka (engl. tuple)
• lista (engl. list)
• nizovi bajtova (engl. bytestring)
• Složeniji tipovi podataka s raspršenim smještajem elemenata su:
• skup (engl. set)
• rječnik (engl. dictionary)

Operacijski sustavi 16
Rad s tipovima podataka
• Dodjela vrijednosti varijabli
• koristi se operator pridruživanja (=)
• vrijednost se ispisuje na zaslon navođenjem naziva varijable
• vrlo velike ili male vrijednosti broja s pomičnom točkom zapisuju se
znanstvenom notacijom (npr. 4e-07 je 0.0000004)
• Tip podatka varijable određuje se funkcijom type()
• svaka vrijednost različita od 0 predstavlja logičku vrijednost True (istina)
• funkcija bool() ispituje istinitosnu vrijednost varijable

Operacijski sustavi 17
Primjer (2) – rad s tipovima podataka

Operacijski sustavi 18
Primjer (3) – rad s tipovima podataka

Operacijski sustavi 19
Primjer (4) – rad s tipovima podataka

Operacijski sustavi 20
Primjer (5) – rad s tipovima podataka

• Skup se stvara pomoću konstruktora set() nad znakovnim nizom


• Rječnik se sastoji od parova vrijednosti ‘ključ’ : vrijednost

Operacijski sustavi 21
Aritmetički operatori
Operator Opis
+ zbrajanje
- oduzimanje ili negacija
* množenje
** potenciranje
/ dijeljenje
// cjelobrojno dijeljenje
% računanje ostatka dijeljenja (modulo)

Operacijski sustavi 22
Relacijski operatori
Operator Opis
> veće od
< manje od
== jednako
>= veće od ili jednako
<= manje od ili jednako
!= različito od

Operacijski sustavi 23
Logički operatori
Operator Opis
and logička konjunkcija (i)
or logička disjunkcija (ili)
not ili - logička negacija (ne)

Operacijski sustavi 24
Operatori proširenog pridruživanja
Operator • Princip korištenja operatora proširenog pridruživanja
+= • prvi operand je vrijednost na koju pokazuje varijabla koja
-= stoji s lijeve strane operatora
*= • drugi operand je vrijednost koju određuje izraz napisan s
/= desne strane operatora
//= • s navedenim se operandima obavlja operacija određena
%=
lijevim znakom operatora proširenog pridruživanja
**=
• dobivena se vrijednost pridružuje varijabli navedenoj s
lijeve strane operatora

Operacijski sustavi 25
Primjer (6) – operatori

Operacijski sustavi 26
Primjer (7) – operatori

Operacijski sustavi 27
Primjer (8) – operatori

Operacijski sustavi 28
Ispis sadržaja na zaslon
• Ispis na zaslon vrši se funkcijom print()
• služi za ispis vrijednosti pohranjene u varijabli
• pri ispisu znakovnoga niza nisu uključeni rubni navodni znakovi
• Postoje posebni znakovi za oblikovanje izlaznoga teksta
• metoda .format() funkcije print koristi se pri oblikovanju izlaza
Posebni znak Opis
\n prijelaz u novi redak
\t tabulator (odmak)
\\ ispis lijevo ukošene crte
\’ ispis jednostrukog navodnika
\” ispis dvostrukog navodnika
Operacijski sustavi 29
Primjer (9) – ispis sadržaja na zaslon

Operacijski sustavi 30
Struktura programa
Osnovne strukture programa
• Python podržava rad s trima osnovnim programskim strukturama
• slijedni ili sekvencijalni programi
• izbor alternativnih blokova naredbi
• ponavljanje blokova naredbi

Operacijski sustavi 32
Primjer (10) – slijedni program

Operacijski sustavi 33
Primjer (11) – izbor alternativnih blokova
naredbi

• Nakon znaka dvotočke, blok naredbi koji slijedi potrebno je uvući


(koristeći tabulator)
• skup naredbi koje čine isti blok trebaju se pisati jedna ispod druge
• nakon završetka bloka, kod se prestaje uvlačiti

Operacijski sustavi 34
Primjer (12) – ponavljanje bloka naredbi
određeni broj puta

• Kod funkcije range() moguće je navesti različite parametre

Operacijski sustavi 35
Primjer (13) – uvjetno ponavljanje bloka
naredbi

• Kod uvjetnog ponavljanja bloka naredbi potrebno je:


• definirati uvjet zaustavljanja (i < 10)
• definirati varijablu koja služi kao brojač i povećavati njezinu vrijednost svakim
izvođenjem bloka (i += 1)

Operacijski sustavi 36
Funkcije i metode
Funkcija vs. metoda
• Funkcije u Pythonu
• složeni izrazi koji obavljaju složene operacije
• „vraćaju” određenu vrijednost
• velik broj ugrađenih funkcija koje korisnik jednostavno poziva nazivom i, po
potrebi, prosljeđuje im argumente (daje vrijednosti nad kojima se funkcija
izvršava) unutar zagrada koje slijede
• Metode u Pythonu
• funkcije koje se često nalaze u objektno usmjerenim programskim jezicima
• odnose se na određeni tip podataka
• prvi argument piše se ispred naziva metode, razdvojen točkom, dok se ostali
argumenti navode unutar zagrada
Operacijski sustavi 38
Primjer (14) – pretvorba korisničkog ulaza

• Podatak koji korisnik unese prema zadanim postavkama je tipa string


• funkcija int() pretvara podatak u tip integer

Operacijski sustavi 39
Primjer (15) – pretvorba korisničkog ulaza

• Podatak koji korisnik unese prema zadanim postavkama je tipa string


• funkcija list() pretvara podatak u tip list

Operacijski sustavi 40
Primjer (16) – pretvorba korisničkog ulaza

• Pri ispisu funkcijom print() možemo koristiti veći broj argumenata


ili koristiti konkatenaciju stringa funkcijom str()
Operacijski sustavi 41
Primjer (17) – pogreška zbog nepretvaranja

• Ako ulaz ne pretvorimo u odgovarajući tip vrijednosti, možemo ga


koristiti isključivo kao string

Operacijski sustavi 42
Funkcije i metode za znakovne nizove
• Neke od najčešće korištenih funkcija za rad sa znakovnim nizovima su:
• mjerenje duljine niza – len()
• pretvorba podatka u vrijednost tipa string – str()
• traženje znaka s najmanjom/najvećom kodnom vrijednošću – min() / max()
• referenciranje na pojedine elemente niza – []
• Neke od najčešće korištenih metoda za rad sa znakovnim nizovima su:
• uklanjanje znakova s početka/kraja niza – .strip()
• razdvajanje niza u elemente liste – .split()
• pretvaranje elemenata niza u velika tiskana slova – .upper()
• pretvaranje elemenata niza u mala tiskana slova – .lower()
• zamjena dijela niza drugim znakovnim nizom – .replace()
Operacijski sustavi 43
Primjer (18) – funkcije uz znakovne nizove

Operacijski sustavi 44
Primjer (19) – metode uz znakovne nizove

Operacijski sustavi 45
Funkcije i metode za liste
• Neke od najčešće korištenih funkcija za rad s listama su:
• mjerenje duljine liste – len()
• pretvorba podatka u vrijednost tipa string – str()
• brisanje elementa liste – del ime_liste[i]
• traženje najmanje/najveće vrijednosti u listi – min() / max()
• Neke od najčešće korištenih metoda za rad s listama su:
• dodavanje elementa na kraj liste – .append()
• dodavanje elementa u listu ispred el. s određenim indeksom – .insert()
• izbacivanje i-tog el. liste (bez argumenta odabire se posljednji) – .pop([i])
• okretanje redoslijeda elemenata liste – .reverse()
• sortiranje liste rastućim redoslijedom elemenata – .sort()
Operacijski sustavi 46
Primjer (20) – funkcije uz liste

Operacijski sustavi 47
Primjer (21) – metode uz liste

Operacijski sustavi 48
Primjer (22) – metode uz liste (nastavak)

Operacijski sustavi 49
Znakovna datoteka
• Slijedna datoteka u kojoj su sadržaji smješteni u bajtove
• pri otvaranju datoteke stvara se (nevidljivi) pokazivač koji se na samome
početku postavlja na početak datoteke (ima vrijednost 0)
• pri čitanju datoteke odn. pisanju u datoteku pokazivač se pomiče tako da uvijek
pokazuje na sljedeće mjesto koje je na redu za čitanje/pisanje
• Datoteku u Pythonu možemo otvoriti za:
• čitanje (oznaka ‘r’, engl. read)
• pisanje (oznaka ‘w’, engl. write)
• dodavanje sadržaja (oznaka ‘a’, engl. append)
• Nakon korištenja datoteke, ona se mora zatvoriti odgovarajućom
metodom .close()
Operacijski sustavi 50
Funkcije za znakovne datoteke
• Neke od najčešće korištenih funkcija za rad sa znakovnim datotekama
• uspostavljanje veze između Pythona i datoteke – open(ime_dat,
način_upotrebe)
• Neke od najčešće korištenih metoda za rad sa znakovnim datotekama su:
• čitanje datoteke i vraćanje sadržaja u obliku stringa – .read()
• čitanje retka datoteke i vraćanje sadržaja u obliku stringa – .readline()
• čitanje datoteke po retcima i stvaranje liste stringova pojedinih redaka –
.readlines()
• smještanje stringa u datoteku – .write(string)
• postavljanje pokazivača (kursora) na određenu poziciju datoteke – .seek(n)
• ispitivanje trenutne pozicije pokazivača – .tell()
Operacijski sustavi 51
Primjer (23) – metode uz znak. datoteke

Operacijski sustavi 52
Primjer (24) – metode uz znak. datoteke
(nastavak)

Operacijski sustavi 53
Korisničke funkcije u
Pythonu
Korisničke funkcije
• Mogu se smatrati složenijim izrazima koji omogućavaju korisniku
jednostavnije izvršavanje zadataka, a mogu se pozivati više puta
• izračunava/određuje novu vrijednost
• izvodi se nad parametrima koji su definirani pri njeziome pozivu
• definira se ključnom rječju def
• ključnom rječju return definira se vrijednost koju funkcija vraća, a ako ne
vraća vrijednost (nego samo nešto obavlja), ništa se ne navodi
def ime_funkcije(popis, parametara):
blok naredbi
return vrijednost
Operacijski sustavi 55
Primjer (25) – korisničke funkcije
• Zadatak uz primjer - Napisati program koji korisniku omogućava unos
cijeloga broja n te vrši provjeru je li broj n djeljiv s tri. Također, program
treba ispisati i koliko postoji brojeva djeljivo s tri u intervalu [1, n].
• definiramo funkciju djeljiv() koja provjerava djeljivost broja i vraća True
ako je broj djeljiv s tri, odn. False ako nije djeljiv s tri
• definiramo funkciju prebroji() koja poziva funkciju djeljiv() pri
prebrajanju brojeva djeljivih s tri
• definiramo glavnu funkciju main() u kojoj korisnik unosi cjelobrojnu
vrijednost (broj), te se pozivaju preostale dvije funkcije s parametrom broj
• pozovemo glavnu funkciju main()

Operacijski sustavi 56
Primjer (25) – korisničke funkcije (nastavak)

Operacijski sustavi 57
Uključivanje modula
Moduli
• Funkcije unutar Pythona grupirane su u module
• moduli su pohranjeni u datoteke (one su smještene u podmapu osnovne mape
Pythona)
• funkcije iz modula koje koristimo potrebno je najaviti (tj. uvesti, importirati)
naredbom import
• u interaktivnom načinu rada, naredba se utipka iza odzivnoga znaka, a nakon
nje slijedi naziv modula
• Tijekom rada na kolegiju koristit ćemo module:
• os
• signal
• threading
Operacijski sustavi 59
Primjer (26) – moduli

Operacijski sustavi 60
Primjer (27) – drugi način uvođenja modula

Operacijski sustavi 61
Literatura
1. Budin, L., Brođanac, P., Markučić, Z. & Perić, S. (2012). Rješavanje problema
programiranjem u Pythonu. Zagreb: Element.
2. Summerfield, M. (2010). Programming in Python 3, Second Edition. Upper Saddle River,
NJ: Addison-Wesley.
3. van Rossum, G. & Drake, F. L. (2011). An introduction to Pyhton: for Python version 3.2.
Bristol: Network Theory Ltd.

Operacijski sustavi 62

You might also like