Download as pdf or txt
Download as pdf or txt
You are on page 1of 68

Uvod u Python

Python – minicourse
Raču
Raˇcuna
naln
lnee mr
mreˇ
eže
ze i uslu
usluge
ge

Odjel za matematiku 2012


Uvod u Python

Jeziˇ
ičcn
ne znaˇ
ačcaajke

Python je interpreterski,
interpreterski, interaktivni programski
programski jezik koji podržava
podrˇzava nekoliko
nekoliko
programerskih paradigmi s naglaskom na ˇcitljiv
čitlji v kod.
Tvorac : Guido von Rossum
Primjena: MI
MIT,
T, NASA
NASA,, IBM,
IBM, Google
Google,, . . .
Licenca: open-source
• Interpretacija medukoda - izvrˇ
izvrsavanje
šavanje ’naredbe po naredbu’
naredbu’
• Jezik visoke razine - pretpostavljeno podržava
podrˇzava ADT
• ˇcista
čista sintaksa – relativno lagani prijelaz s pseudokoda
pseudokoda na implementaciju
• po država
podrˇzava nekoliko programerskih
programe rskih paradigmi (proceduralno
(procedur alno programiranje,
programiranje , OOP,
OOP,
funkcionalno programiranje, ...)
• proˇ
prosirivost
širivost (CPython, Jython, IronPython
IronPytho n (.NET))
(.NET) )
• bogata biblioteka programa - Python Cheese Shop  - PyPI.
Uvod u Python

Jeziˇ
ičcn
ne znaˇ
ačcaajke

Python je interpreterski,
interpreterski, interaktivni programski
programski jezik koji podržava
podrˇzava nekoliko
nekoliko
programerskih paradigmi s naglaskom na ˇcitljiv
čitlji v kod.
Tvorac : Guido von Rossum
Primjena: MI
MIT,
T, NASA
NASA,, IBM,
IBM, Google
Google,, . . .
Licenca: open-source
• Interpretacija medukoda - izvrˇ
izvrsavanje
šavanje ’naredbe po naredbu’
naredbu’
• Jezik visoke razine - pretpostavljeno podržava
podrˇzava ADT
• ˇcista
čista sintaksa – relativno lagani prijelaz s pseudokoda
pseudokoda na implementaciju
• po država
podrˇzava nekoliko programerskih
programe rskih paradigmi (proceduralno
(procedur alno programiranje,
programiranje , OOP,
OOP,
funkcionalno programiranje, ...)
• proˇ
prosirivost
širivost (CPython, Jython, IronPython
IronPytho n (.NET))
(.NET) )
• bogata biblioteka programa - Python Cheese Shop  - PyPI.
Uvod u Python

Izvodenje python programa

2 nači
naˇcina
na rada:
rada:
Interaktivni rad  – u konzolu se upisuju naredbe programskog jezika koje se odmah

interpre
int erpretir
tiraju
aju (iz
(izvrˇ
vršava
savaju).
ju).
1 P y th
th o n 2 .7
.7 ( r 32
3 2 : 8 84
84 45
4 5 , F eb
e b 2 0 2 0 1 1 , 2 1 :2
: 2 9 :0
:0 2 ) [ M SC
SC v . 1 50
50 0 3 2 b it i t ( I n te
te l ) ] o n w i n3
n3 2
2 Type " c o p y r i g h t ",
", " c r e d i t s " or " l i c e n s e ( ) " fo r m o re
re i n f o r ma
ma t i o n .
3 > >> print " H e l l o W o r l d "

• Skriptni rad  – Programi se spremaju u skripte a onda se kao Unix /Linux  ili


Windows  skripte pozivaju iz sistemske linije.
1 p y t ho
ho n i m e s kr
kr i p t e . p y

• Ugradeni kod  – izvodenje Python koda u drugim programskim jezicima


Uvod u Python

Varijable i unos

U Pythonu nema ekplicitine deklaracije tipa varijable, interpreter na temelju


incijalizacije prepoznaje tip.
Ispis na konzolu: print naredba
Primjer (”Hello, World!”)

1 > > > p r i n t " H e ll o , W o r ld ! "

Izraz za unos podataka s konzole: input naredba.


Primjer (Unos)
Napišite program koji će za uneseno ime napisati ”Dobrodošli, ime , u svijet Pythona”.
Uvod u Python

Varijable i unos

U Pythonu nema ekplicitine deklaracije tipa varijable, interpreter na temelju


incijalizacije prepoznaje tip.
Ispis na konzolu: print naredba
Primjer (”Hello, World!”)

1 > > > p r i n t " H e ll o , W o r ld ! "

Izraz za unos podataka s konzole: input naredba.


Primjer (Unos)
Napišite program koji će za uneseno ime napisati ”Dobrodošli, ime , u svijet Pythona”.
1 #ime.py
2 i m e = r a w _ i n p u t ( " U n e s i te i m e : ") # ’ i m e ’
3 p r i n t " D o b r o d os l i "+ i m e +" u s v ij e t P y th o na "
4
5 p y t h on i m e . p y
Uvod u Python

Tipovi podataka
Osnovne tipove podataka Python predstavlja u objektima.
Kategorija Ime Opis
Prazno (None) NoneType ’null’ objekt
Brojevi IntType Cijeli broj
FractionalType Razlomak
FloatType Realni broj s pom. zarezom
ComplexType Kompleksni broj
Nizovi StringType Niz znakova (string)
UnicodeType Unicode (string)
ListType Listina, popis ili lista
TupleType n-terac
XRangeType Vraćeno iz xrange()
BufferType Vraćeno iz buffer()
Preslikavanje DictType Rječnik
Klase, razredi ClassType Definicija klase
Instanca klase, objekt InstanceType Stvaranje instance klase
Datoteka FileType Datoteka - podaci na mediju
Moduli ModuleType Modul (skup objekata)

Primjer

1 2347
# C j e l o br o j n i l i t er a l
2 13.514 1 [ 63 , ’ f a k s ’ , 8 . 6 ] # L is ti na , l i st a i li p op i s
# R e a ln i ( F l o at i ng - p o i n t ) l i t e ra l 2 ( 4 50 , 3 20 , ’ 6 0 0 ’ ) # n - t e ra c
3 5.0J # I m a g i na r n i l i t e ra l 3 { ’ a ’ : 7 2 , ’b ’ : 1. 4 } # r je č n i k
4 ’hello’
# S t r in g l i te r al , n i z z n a k ov a
Uvod u Python

ADT

tipovi podataka više razine (ADT) u Pythonu:

• Liste  (lists): [’a’,1,’b’,16]


• N-terci  (tuples): (1,10,3)
• Rječnici  (dictionaries): {’a’:1,’b’:2,’c’:3}
• Skupovi  (sets)
U Pythonu je definiran poveći broj operacija za rad sa spomenutim tipovima podataka.
Uvod u Python

Malo igre sa spomenutim tipovima podataka...

Različiti tipovi literala. U Python 3 verziji postoji tip podataka razlomci :

1 > > > t y pe ( " P y t h o n " ) # s t ri n g l i te r al 1 import fractions


2 < t y p e ’ s t r ’> 2 x = f r a c t i o n s . F r a c t i o n ( 1 , 3 ) # 1 /3
3 > > > t y p e ( 5 12 ) 3 y=fractions.Fraction(1,2) #1/2
# n u m e ri c k i l i t er a l 4 z = x + y # 5 /6
4 < t y p e ’ i n t ’>
5 > > > k = 2 . 17 8
# v a ri j ab l a k
6 >>> type(k)
7 < t y p e ’ f l o a t ’>
8 > > > t y p e ( { ’ a ’ : 7 2 , ’b ’ : 1 .4 } )
9 < t y p e ’ d i c t ’>
10 > > > z = 2 +3 j
# v a ri j ab l a z
11 >>> type(z)
12 < t y p e ’ c o m p l e x ’>

Vrijednosti i funkcije iz modula:


1 > > > i m p o r t math
2 > > > p r i n t m a th . p i , m a t h . s in ( 2 . 3 )
3 3 . 1 4 1 59 2 6 5 3 59 0 . 7 4 5 70 5 2 1 2 17 7
Uvod u Python

Operacije i operatori

Python podržava većinu operatora i operacija koji su podržani u ostalim programskim


 jezicima:

1. aritmetičke operacije  (+, −, ∗∗, / , . . .)


2. operatori pridruživanja (=, + =, ∗ =, ∗∗ =, . . .)
3. logički operatori  (x  < y , x  <= y , x  > y , x  >= y , x  <> y , x ! = y , x  == y )
4. specijalizirane operacije na pojedinim tipovima podataka (ugradene metode u
objekte)
Uvod u Python

Operatori nad tipovima podataka:


’izraz,...’ String pretvorba
key:izraz,... Stvaranje rječnika
[izraz,...] Stvaranje liste
(izrazr,...) Stvaranje n-terca ili jednostavne zagrade
f(izraz,...) Poziv funkcije
x[index1:index2] Kriška (slicing)
x[index] Indeksiranje (indexing)
x.attr Referenca atributa
x**y Eksponent (x na y potenciju)
x Bitwise NE (NOT)
+x, -x Unarni plus ili minus
x*y, x/y, x//y, x%y Množenje, dijeljenje, dijeljenje na cijeli broj, ostatak
x+y, x-y Zbajanje, oduzimanje
x¡¡y, x¿¿y Lijevi pomak, desni pomak
x &y  Bitwise I (AND)
x  ∧ y  Bitwise eksluzivni ILI (XOR)
x—y Bitwise ILI (OR)
x  < y , x  <= y , x  > y , x  >= y , x  <> y , x ! = y , x  == y  Usporedbe
x is y, x is not y Provjera identiteta
x in y, x not in y Provjera članstva
not x Bool-ov NE (NOT)
x and y Bool-ov I (AND)
x or y Bool-ov ILI (OR)
lambda arg,...: izraz Anonimna jednostavna funkcija
Uvod u Python

Primjeri
Primjer
Napišite Python program koji će za unesene stranice trokuta a, b , c izračunati površinu 
tog trokuta.
Uvod u Python

Primjeri
Primjer
Napišite Python program koji će za unesene stranice trokuta a, b , c izračunati površinu 
tog trokuta.
1 i m p o r t math
2 p r i n t ( " R a cu n z a p o vr s in u t r ok u ta " )
3 a = i np ut ( " a : " ) # p r e t p o s ta v k a : n e j e dn a k o s t t r o k ut a
4 b = i np ut ( " b : " )
5 c=input( "c:" )
6
7 s=(a+b+c)/2
8 p r i n t " p o vr s in a t r ok u ta j e " , m a t h . s q r t ( s * ( s - a ) * ( s - b ) * ( s - c ) )
9 p r i n t " O p se g t r ok u ta j e " , a + b + c
Uvod u Python

Primjeri
Primjer
Napišite Python program koji će za unesene stranice trokuta a, b , c izračunati površinu 
tog trokuta.
1 i m p o r t math
2 p r i n t ( " R a cu n z a p o vr s in u t r ok u ta " )
3 a = i np ut ( " a : " ) # p r e t p o s ta v k a : n e j e dn a k o s t t r o k ut a
4 b = i np ut ( " b : " )
5 c=input( "c:" )
6
7 s=(a+b+c)/2
8 p r i n t " p o vr s in a t r ok u ta j e " , m a t h . s q r t ( s * ( s - a ) * ( s - b ) * ( s - c ) )
9 p r i n t " O p se g t r ok u ta j e " , a + b + c

Primjer
Napišite Python program koji će sortirati unesenu listu brojeva pomoću ugradene 
funkcije  sort().
Uvod u Python

Primjeri
Primjer
Napišite Python program koji će za unesene stranice trokuta a, b , c izračunati površinu 
tog trokuta.
1 i m p o r t math
2 p r i n t ( " R a cu n z a p o vr s in u t r ok u ta " )
3 a = i np ut ( " a : " ) # p r e t p o s ta v k a : n e j e dn a k o s t t r o k ut a
4 b = i np ut ( " b : " )
5 c=input( "c:" )
6
7 s=(a+b+c)/2
8 p r i n t " p o vr s in a t r ok u ta j e " , m a t h . s q r t ( s * ( s - a ) * ( s - b ) * ( s - c ) )
9 p r i n t " O p se g t r ok u ta j e " , a + b + c

Primjer
Napišite Python program koji će sortirati unesenu listu brojeva pomoću ugradene 
funkcije  sort().
1 lista=[2,6,1,4,5,7]
2 lista.sort()
3 print lista

Primjer
Python program s pozdravom.
Uvod u Python

Primjeri
Primjer
Napišite Python program koji će za unesene stranice trokuta a, b , c izračunati površinu 
tog trokuta.
1 i m p o r t math
2 p r i n t ( " R a cu n z a p o vr s in u t r ok u ta " )
3 a = i np ut ( " a : " ) # p r e t p o s ta v k a : n e j e dn a k o s t t r o k ut a
4 b = i np ut ( " b : " )
5 c=input( "c:" )
6
7 s=(a+b+c)/2
8 p r i n t " p o vr s in a t r ok u ta j e " , m a t h . s q r t ( s * ( s - a ) * ( s - b ) * ( s - c ) )
9 p r i n t " O p se g t r ok u ta j e " , a + b + c

Primjer
Napišite Python program koji će sortirati unesenu listu brojeva pomoću ugradene 
funkcije  sort().
1 lista=[2,6,1,4,5,7]
2 lista.sort()
3 print lista

Primjer
Python program s pozdravom.
1 i m e = i n p u t ( " V a se i me : ")
2 t i t u l a = i n p u t ( " t i t u l a : ")
3
4 p r i n t " D o b ro d os l i s v ij e t P yt h % s % s " % ( t it ul a , i m e )
Uvod u Python

Kontrolne strukture

Kontrolne strukture koje podržava Python:


if . . . then . . . else
1 if uvjet(i):
2 naredba(e)
3 elif u v j e t ( i ) :
4 naredba(e)
5 elif uvjet(i):
6 naredba(e)
7 .. .
8 else uvjet(i):
9 naredba(e)

Ponavljaj uz uvjet . . .
While ...
1 while izraz:
2 naredba(e)

Iterativno izvodenje blok naredbi upravljen od iteracijskog izraza:


For . . .
1 fo r cilj in n i z u :
2 naredba(e)
Uvod u Python

Primjeri

Primjer (Aritmetička sredina)


Za dani niz podataka treba odrediti njegovu aritmetičku sredinu.
Uvod u Python

Primjeri

Primjer (Aritmetička sredina)


Za dani niz podataka treba odrediti njegovu aritmetičku sredinu.
1 p r i n t ( " U n e s i te b r o je v e z a r a c u na n j e ")
2 p r i n t ( " Z a i z la z u p is i te 0 ")
3
4 suma=0.0
5 b r o j = i n p u t ( " U p i s i te b r oj " )
6 n =1 # b r o j i mo e l e m en t e
7
8 while (broj!=0):
9 b r o j = i n p u t ( " U p i s i te b r o j : ")
10 n+=1
11 suma+=broj
12
13 print suma/n

Primjer (Fibonnaci)
Za dani n ispišite n Fibonaccijevih brojeva.
Uvod u Python

Primjeri

Primjer (Aritmetička sredina)


Za dani niz podataka treba odrediti njegovu aritmetičku sredinu.
1 p r i n t ( " U n e s i te b r o je v e z a r a c u na n j e ")
2 p r i n t ( " Z a i z la z u p is i te 0 ")
3
4 suma=0.0
5 b r o j = i n p u t ( " U p i s i te b r oj " )
6 n =1 # b r o j i mo e l e m en t e
7
8 while (broj!=0):
9 b r o j = i n p u t ( " U p i s i te b r o j : ")
10 n+=1
11 suma+=broj
12
13 print suma/n

Primjer (Fibonnaci)
Za dani n ispišite n Fibonaccijevih brojeva.
1 n = e v a l ( i n p u t (" K o l i k o z e l i t e f i b o n ac c i j e v ih b r o j ev a : " ))
2 r es ul t = [ ]
3 a, b = 0 , 1
4 while b < n:
5 result.append(b)
6 a , b = b , a +b
7
8 p r i n t " F i b o n a c ci j e v i b r o je v i : "
9 fo r broj in r e s u l t :
10 print broj, " "
Uvod u Python

Funkcije

Funkcije su blokovi naredbi koji primaju vrijednosti ’izvana’ i mogu vratiti jednu ili više
vrijednosti kao rezultat njihova računanja.

1 de f i m e _ f u n k c i j e ( p a r a m e t r i ) :
2 izraz(i)

Primjer
Definirajte funkciju koja vraća aposolutnu vrijednost broja.
1 de f a b s ( x ) :
2 if x < 0 :
3 return -x
4 else :
5 return x
6
7 print abs(-5) # i sp is uj e 5
Uvod u Python

Funkcijski argumenti

Parametri su varijable čije vrijednosti uzima funkcija.

Primjer (Artimetička sredina)


Funkcija aritmetičke sredine za proizvoljne brojeve.
1 de f M e a n ( * b r o j e v i ) :
2 n =0
3 suma=0.0
4 fo r x in b r o j e v i :
5 suma+=x
6 n+=1
7 return suma/n
8 print Mean(2,2,1,6,9,4,7,1,3)
Uvod u Python

Primjeri

Primjer
Definirajte funkciju koja će provjeravati da li je broj prost i dodatnu funkciju koja će za
proslijedene brojeve računati samo sumu prostih brojeva.
Uvod u Python

Primjeri

Primjer
Definirajte funkciju koja će provjeravati da li je broj prost i dodatnu funkciju koja će za
proslijedene brojeve računati samo sumu prostih brojeva.

1 i m p o r t math
1 import math
2
2
3 de f p r i m e _ s u m ( * b r o j e v i ) :
3 de f P r i m e ( b r o j ) :
4 suma=0.0
4 fo r p in r a n g e ( 2 , b r o j ) :
5 fo r x in b r o j e v i :
5 if ( br oj % p = = 0 ):
6 if P r i m e ( x ) :
6 r e t u r n False
7 suma=suma+x
7 return True
8 r e t u r n suma
Uvod u Python

Zadaci

Zadatak
Napišite Python program koji će aproksimirati broj  π tako da izračunate konačnu 
sumu niza 4/1 − 4/3 + 4 /5 − 4/7 + 4 /9 − 4/11 + . . .. Korisnik treba unjeti broj n koji 
predstavlja broj članova ovog niza.

Zadatak
Napišite Python program koji će za uneseno ime i prezime generirati korisničko ime 
tako da ga složi kao string od prvog znaka imena i od prvih sedam znakova prezimena.
Ime i prezime moraju biti prebačeni u mala slova.
Uvod u Python

OOP – objektno orijentirano programiranje

Klase  – kolekcija podataka (atributa) sa skupom metoda za pristup i manipulaciju tim


podacima.

Objekt  – instanca klase - varijabla koja sadrži atribute i metode s postavljenim


vrijednostima kako je propisala klasa koju je instancira.
Uvod u Python

OOP – objektno orijentirano programiranje

Klase  – kolekcija podataka (atributa) sa skupom metoda za pristup i manipulaciju tim


podacima.

Objekt  – instanca klase - varijabla koja sadrži atribute i metode s postavljenim


vrijednostima kako je propisala klasa koju je instancira.

Važne karakteristike OOP:


1. polimorfizam (engl. polymorphism) – manipulirati objektima bez eksplicitnog
znanja o tipu ili klasi kojima pripadaju objekti.
2. enkapsulacija (engl. encapsulation) – atributima i metodama se mogu pridjeliti
razine pristupa koje mogu biti privatne ili javne.
3. nasljedivanje (engl. inheritance ) – skupovni odnos izmedu klasa (klasa može biti
podklasa neke druge klase)
Uvod u Python

OOP u Pythonu

Klasa ili razred  je Python objekt s nekoliko značajki:


• Objekt klase  može se pozivati kao da je funkcija. Poziv stvara novi objekt , poznat
kao instanca klase 
Uvod u Python

OOP u Pythonu

Klasa ili razred  je Python objekt s nekoliko značajki:


• Objekt klase  može se pozivati kao da je funkcija. Poziv stvara novi objekt , poznat
kao instanca klase 
• Klasa ima po volji imenovane atribute  koji se mogu povezivati i referirati.
Uvod u Python

OOP u Pythonu

Klasa ili razred  je Python objekt s nekoliko značajki:


• Objekt klase  može se pozivati kao da je funkcija. Poziv stvara novi objekt , poznat
kao instanca klase 
• Klasa ima po volji imenovane atribute  koji se mogu povezivati i referirati.
• Atributi klase koji su povezani na funkcije poznati su kao metode klase .
Uvod u Python

OOP u Pythonu

Klasa ili razred  je Python objekt s nekoliko značajki:


• Objekt klase  može se pozivati kao da je funkcija. Poziv stvara novi objekt , poznat
kao instanca klase 
• Klasa ima po volji imenovane atribute  koji se mogu povezivati i referirati.
• Atributi klase koji su povezani na funkcije poznati su kao metode klase .
• Metoda može imati posebno ime definirano od Pythona s dvije podcrte (’ ’)
ispred i iza imena. Python upotrebljava takve posebne metode za neke operacije
koje se izvršavaju na instancama klase. (konstruktor)
Uvod u Python

OOP u Pythonu

Klasa ili razred  je Python objekt s nekoliko značajki:


• Objekt klase  može se pozivati kao da je funkcija. Poziv stvara novi objekt , poznat
kao instanca klase 
• Klasa ima po volji imenovane atribute  koji se mogu povezivati i referirati.
• Atributi klase koji su povezani na funkcije poznati su kao metode klase .
• Metoda može imati posebno ime definirano od Pythona s dvije podcrte (’ ’)
ispred i iza imena. Python upotrebljava takve posebne metode za neke operacije
koje se izvršavaju na instancama klase. (konstruktor)
• Klasa može podatke i metode naslijediti  od drugih klasa
Uvod u Python

sintaksa

Definiranje klase:
1 c l a s s i m e _ kl a s e [ ( k l as e r o d i te l j i ) ] :
2 izraz1
3 izraz2
4 .. .
5 de f m e t o d a 1 ( ) :
6 .. .
7 de f m e t o d a 2 ( ) :
8 .. .
9 .. .
Uvod u Python

sintaksa

Definiranje klase:
1 c l a s s i m e _ kl a s e [ ( k l as e r o d i te l j i ) ] :
2 izraz1
3 izraz2
4 .. .
5 de f m e t o d a 1 ( ) :
6 .. .
7 de f m e t o d a 2 ( ) :
8 .. .
9 .. .

ilustracija: atributi, funkcije, . . .


1 >> > class M o j a _ k l a s a :
2 ... x =23 Provjera da li neki objekt instanca neke klase:
3 .. .
4 >>> o b j ek t 1 = M o j a _ k la s a ( ) 1 > > > o b j e kt 3 = 5
5 >>> o b j ek t 1 . x = 5 1 2 >>> isinstance(objekt1 ,Moja_klasa)
6 >> > print ( o b j e k t 1 . x ) 3 True
7 51 4 >>> isinstance(objekt3 ,Moja_klasa)
8 >>> o b j ek t 2 = M o j a _ k la s a ( ) 5 False
9 >> > print ( o b j e k t 2 . x )
10 23
Uvod u Python

Enkapsulacija
U klasi mogu biti definirani razine pristupa metodama i atributima. Te razine mogu
biti private  i public  i deklarirane su ovisno o broju podcrta ( __) u prefiksu imena
metoda/atributa:
1 self.__identifikator # p r i va t na v a ri j ab l a k l as e ( p r i va t e )
2 self.identifikator # ja vn a va ri ja bl a k la se ( p ub li c )
Uvod u Python

Enkapsulacija
U klasi mogu biti definirani razine pristupa metodama i atributima. Te razine mogu
biti private  i public  i deklarirane su ovisno o broju podcrta ( __) u prefiksu imena
metoda/atributa:
1 self.__identifikator # p r i va t na v a ri j ab l a k l as e ( p r i va t e )
2 self.identifikator # ja vn a va ri ja bl a k la se ( p ub li c )

Primjer (Osoba)
Klasa koja sadrži javne i privatne varijable.
1 # 7 . O O P u P y th o nu
2
3 # j e dn o st a vn i p r im j er k la s e i i n st a nc i ra n ja
4
5 c l a s s O s o b a ( ) : # d e f i n i r an j e k l a se
6 " k l as a s k o jo m i n st a nc i ra m o ’ o s ob e ’ "
7 de f p o s t a v i I m e ( s e l f , i m e ) : # m e t o d e
8 s e l f . _ _ i m e = i m e # p r i v a t ni a t r i bu t i
9 de f d a j I m e ( s e l f ) :
10 return self.__ime
11 de f p o z d r a v ( s e l f ) :
12 p r i n t( " D o br od o sl i , g d in e % s u s v ij e t P y th o na ! " % s e l f . n a m e )
13
14 o s o b a 1 = O s o b a ( ) # i n s t a n c i ra n j e o b j ek t a k l a se O s o ba
15 osoba1.postaviIme( ’Pero’)
16 osoba1.pozdrav()
17
18 osoba2=Osoba()
19 o s o b a 2 . p o s t a v i I m e ( ’ I v o ’)
20 osoba2.pozdrav()
21
22 p r i n t ( " I m en a n o vi h p y th o ni s ta s u % s i % s ! "% ( o s o b a 1 . g e t N a m e ( ) , o s o b a 2 . g e t N a m e ( ) ) )
Uvod u Python

Inicijalizatori objekata
Za inicijalizaciju objekata koristimo posebnu funkciju zvanu konstruktor .
Primjer
Napišite Python klasu Pravokutnik u kojoj kontruktorom inicijalizirate vrijednosti 
varijabli  visina , sirina  i metode koje računaju površinu odnosno opseg.
Uvod u Python

Inicijalizatori objekata
Za inicijalizaciju objekata koristimo posebnu funkciju zvanu konstruktor .
Primjer
Napišite Python klasu Pravokutnik u kojoj kontruktorom inicijalizirate vrijednosti 
varijabli  visina , sirina  i metode koje računaju površinu odnosno opseg.
1 # P ra vo ku tn ik s a s lu ca jn im d ul ji na ma s t ra ni ca ma
2 from r a n d o m i m p o r t *
3 i m p o r t time
4
5 seed()
6
7 class Pravokutnik():
8 de f _ _ i n i t _ _ ( s e l f , s i r i n a , d u l j i n a ) :
9 self.sirina=sirina
10 self.duljina=duljina
11
12 de f p o v r s i n a ( s e l f ) :
13 return self.duljina*self.sirina
14
15 de f o p s e g ( s e l f ) :
16 return 2*(self.duljina+self.sirina)
17
18
19 # g l av n i p r og r am
20
21 p r av o ku t ni c i = [ ]
22
23 fo r i in r a n g e ( 1 , 3 ) :
24 pravokutnik=Pravokutnik(random()*10,random()*10)
25 pravokutnici.append(pravokutnik)
26
27 fo r p r a v o k u t n i k in p r a v o k u t n i c i :
28 p r i n t " P o vr s in a p r av o ku t ni k a j e % .2 f , a o p se g % .2 f " % ( p r a v o k u tn i k . p o v r s in a ( ) , p r a v o k u tn i k . o p s e g ( ))
Uvod u Python

Nasljedivanje
Nasljedivanje je mehanizam stvaranja novih klasa koje specijaliziraju ili mijenjaju
ponašanje postojeće klase.

1 class A:
2 v ar A = 4 2
3 de f m e t h o d 1 ( s e l f ) :
4 p r i n t( " C l as s A : m e th o d1 " )
5 class B:
6 v ar B = 3 7
7 de f m e t h o d 1 ( s e l f ) :
8 p r i n t( " C l as s B : m e th o d1 " )
9 de f m e t h o d 2 ( s e l f ) :
10 p r i n t( " C l as s B : m e th o d2 " )
11
12 c l a s s C ( A , B ) : # N as lj ed uj e od A i B
13 v ar C = 3 .3
14 de f m e t h o d 2 ( s e l f ) :
15 p r i n t( " K l as a B : o v er r id e : - ) ")
16 de f m e t h o d 3 ( s e l f ) :
17 p r i n t( " C l as s C : m e th o d3 " )
18
19 class D(A):
20 varD=100
21 de f m e t h o d 4 ( s e l f ) :
22 p r i n t( " S u bc l as s o f A " )
23
24 objekt2=B()
25 objekt3=C()
26 objekt5=D()
27
28 # p r in t ( o b je k t2 . v a rA ) # g r es k a : o b je k t2 n em a a t ri b ut v a rA
29 objekt3.varA # v a lj a n i s p i s : 4 2
Uvod u Python

Nasljedivanje

Primjer klase i podklase:


Primjer (’SPAM’ filter)
Napišite Python klasu koja će dani niz pročistiti od odredene riječi.
1 class Filter:
2 de f _ _ i n i t _ _ ( s e l f ) :
3 self.blokirano=[]
4 de f f i l t e r ( s e l f , n i z ) :
5 r e t u r n [ x fo r x in ni z if x n ot i n s e l f . b l o k i r a n o ]
6
7 class SPAMFilter(Filter):
8 de f _ _ i n i t _ _ ( s e l f ) :
9 self.blokirano=[ ’SPAM’]
10
11
12 uzorak=Filter()
13 print(uzorak.filter([1,2,3]))
14
15 filteruzorak=SPAMFilter()
16 p r i n t ( f i l t e r u z o r a k . f i l t e r ( [ ’ S P A M ’ , ’ S P A M ’ , 1 , 4 , 2 ,’ S P A M ’ ,6,5]))
Uvod u Python

Zadaci

Zadatak 1
1. Napišite Python program u kojem će te definirati klasu Trokut  koja u sebi sadrži
zaštićene atribute a, b , c  i javne metode povrsina() i opseg() koje će računati
površinu odnosno opseg trokuta. Definirajte konstruktor koji će inicijalizirati
objekt klase.
2. Definirajte Python klasu JednakokracniTrokut  nasljedenu iz klase Trokut  koji u
konstruktor prima samo parametre a, b  i prosljeduje konstuktoru bazne klase.
Uvod u Python

Rješenje.

1 # T r ok u t
2
3 i m p o r t math
4
5 class Trokut:
6 " k l as a k o ja d e fi n ir a t r ok u t "
7 de f _ _ i n i t _ _ ( s e l f , x , y , z ) :
8 self._a=x
9 self._b=y
10 self._c=z
11
12 de f o p s e g ( s e l f ) :
13 return self._a+self._b+self._c
14
15 de f p o v r s i n a ( s e l f ) :
16 s=(self._a+self._b+self._c)/2.0
17 return math.sqrt(s*(s-self._a)*(s-self._b)*(s-self._c))
18
19 class JednakokracniTrokut(Trokut):
20 de f _ _ i n i t _ _ ( s e l f , a , b ) :
21 Trokut.__init__(self,a,b,b)
22
23 # g l a v n i d i o p r o g ra m a
24 trokut1=Trokut(3,4,5)
25 trokut2=JednakokracniTrokut(4,3)
26 p r i n t " p o vr s in a t r ok u t1 = " , t r o k u t 1 . p o v r s i n a ( )
27 p r i n t " p o vr s in a t r ok u t2 = " , t r o k u t 2 . p o v r s i n a ( )
Uvod u Python

Moduli i paketi

Podaci (varijable), funkcije, klase i objekti skupljaju se u module . Više modula zajedno
čini paket . Moduli i paketi predstavljaju Python knjižnicu (engl. library ).

Poziv modula postiže se naredbom import:


1. Modul stvara novi prostor imena koji služi svim objektima definiranim u pripadnoj
izvornoj datoteci.
Uvod u Python

Moduli i paketi

Podaci (varijable), funkcije, klase i objekti skupljaju se u module . Više modula zajedno
čini paket . Moduli i paketi predstavljaju Python knjižnicu (engl. library ).

Poziv modula postiže se naredbom import:


1. Modul stvara novi prostor imena koji služi svim objektima definiranim u pripadnoj
izvornoj datoteci.
2. Modul izvršava kôd koji je sadržan unutar novonastalog prostora imena.
Uvod u Python

Moduli i paketi

Podaci (varijable), funkcije, klase i objekti skupljaju se u module . Više modula zajedno
čini paket . Moduli i paketi predstavljaju Python knjižnicu (engl. library ).

Poziv modula postiže se naredbom import:


1. Modul stvara novi prostor imena koji služi svim objektima definiranim u pripadnoj
izvornoj datoteci.
2. Modul izvršava kôd koji je sadržan unutar novonastalog prostora imena.
3. Modul izvršava ime unutar pozivatelja, koje se odnosi na prostor imena modula.
Ovo ime podudara se s imenom modula.
Uvod u Python

Moduli i paketi

Podaci (varijable), funkcije, klase i objekti skupljaju se u module . Više modula zajedno
čini paket . Moduli i paketi predstavljaju Python knjižnicu (engl. library ).

Poziv modula postiže se naredbom import:


1. Modul stvara novi prostor imena koji služi svim objektima definiranim u pripadnoj
izvornoj datoteci.
2. Modul izvršava kôd koji je sadržan unutar novonastalog prostora imena.
3. Modul izvršava ime unutar pozivatelja, koje se odnosi na prostor imena modula.
Ovo ime podudara se s imenom modula.
Uvod u Python

Moduli i paketi

Podaci (varijable), funkcije, klase i objekti skupljaju se u module . Više modula zajedno
čini paket . Moduli i paketi predstavljaju Python knjižnicu (engl. library ).

Poziv modula postiže se naredbom import:


1. Modul stvara novi prostor imena koji služi svim objektima definiranim u pripadnoj
izvornoj datoteci.
2. Modul izvršava kôd koji je sadržan unutar novonastalog prostora imena.
3. Modul izvršava ime unutar pozivatelja, koje se odnosi na prostor imena modula.
Ovo ime podudara se s imenom modula.
Drugim riječima, unutar jednog programa možemo uključivati i druge programe.

1 > > > i m p o r t this # P y th o n z en - m u d ro s t


Uvod u Python

Biblioteke

Primjer upotrebe import :

Prva programska skripta:

1 # d a t o te k a : p r i m je r . p y
2 a = 37 # V a r i ja b l a
3 de f A : # F u n k ci j a
4 p r i n t( " Ja s am u A ")
5 class K: # K la s a
6 de f B ( s e l f ) :
7 p r i n t( " Ja s am u K .B ")
8 b = K() # T v or b a i n st a nc e

uvoz u drugu programsku skriptu:

1 i m p o r t sy s
2 # s ys . p a th . a p pe n d () # r ad n i f o ld e r
3 import primjer # U č i ta v a u m e mo r ij u i i z vo d i m o du l ’ p r im j er ’
4 print(primjer.a) # D o hv a ć a i zv od i n ek i č l a n ( v a r i j a b lu ) m o d ul a ’ p r i m je r ’
5 primjer.A() # D o hv a ć a i i z vo d i f u nk c ij u i z m o du l a
6 c = p r im j er . K ( ) # D o hv a ć a i i z vo d i k la s u i z m od ul a , t v or b a o b je k ta
Uvod u Python

Moduli u Python biblioteci

Moduli se mogu učitati (importirati ) koristeći alternativna imena, i to upotrebom


poveznice as .
Na primjer:

1 i m p o r t o s a s s u st a v
2 i m p o r t s o ck e t a s m r ez a
3 s u s t a v . c h d i r ( " . . ")
4 mreza.gethostname()
5 .. .
6 i m p o r t m a t h a s m a t e ma t i k a
7 x=matematika.sqrt(2)
Uvod u Python

Zadaci

Zadatak 2
1. Napišite Python program u kojem će te definirati klasu Complex  koja u sebi
sadrži atribute Re , Im i preopteretite operatore + , ∗ tako da možete primjeniti
aritmetički operator na dane objekte tipa Complex 
2. Testiranje napravite u datoteci testComplex.py  koja će preuzeti Complex  kao
paket s prijmjerom u  = 2 − i , v  = 4 + 6i .
Uvod u Python

Rješenje.

1 class Complex:
2 de f _ _ i n i t _ _ ( s e l f , r e a l , i m a g = 0 ) :
3 s e lf . r e a l = f l o at ( r e a l )
4 s e lf . i m a g = f l o at ( i m a g )
5 de f _ _ r e p r _ _ ( s e l f ) :
6 r e t u r n " ( C o m p l ex % s + % s ) " % ( s e l f . re al , s e l f . i ma g )
7 de f _ _ s t r _ _ ( s e l f ) :
8 r e t u r n " % g + % g i " % ( s e lf . r e al , s e l f . i ma g )
9 # s el f + o th er
10 de f _ _ a d d _ _ ( s e l f , d r u g i ) : # o p er a to r s l i je v a
11 r e t u r n C o m pl e x ( s e l f . r e al + d r u gi . r e al , s e l f . i ma g + d r u gi . i m a g )
12 de f _ _ r a d d _ _ ( s e l f , d r u g i ) : # o p er a to r s d es n a
13 return Complex.__add__(drugi,self)
14 # o th er - s el f
15 de f _ _ m u l _ _ ( s e l f , d r u g i ) :
16 pass
17 de f _ _ r m u l _ _ ( s e l f , d r u g i ) :
18 pass
19 de f _ _ c o er c e _ _ ( s el f , d r u gi ) :
20 if i s i n st a n c e ( d ru g i , C o m p le x ) :
21 return self,drugi
22
23 tr y : # P r ov j er i ti a ko s e m oz e p r et v or i ti u f l oa t
24 r e t u r n s e lf , C o m p le x ( f l o a t ( d r ug i ) )
25 except ValueError:
26 pass
27
28 # t e s t Co m p l e x . p y
29
30 from C o m p l e x import C o m p l e x
31 u=Complex(1,2)
32 v=Complex(2,-3)
33 x =3
34 print u+v
35 print u+x
Uvod u Python

GUI - rad s grafičkim sučeljem

Praktična primjena OOP-a je implementacija struktura podataka grafičkog prikaza.


Python u svojoj temeljnoj distribuciji sadrži Tkinter  biblioteku za rad s grafikom.
Uvod u Python

GUI - rad s grafičkim sučeljem

Praktična primjena OOP-a je implementacija struktura podataka grafičkog prikaza.


Python u svojoj temeljnoj distribuciji sadrži Tkinter  biblioteku za rad s grafikom.

Koristit ćemo graphics.py za rad s grafikom i ona u sebi sadrži klasu koja je izvedena
iz klasa implementiranih u Tk biblioteci.
Uvod u Python

GUI - rad s grafičkim sučeljem

Praktična primjena OOP-a je implementacija struktura podataka grafičkog prikaza.


Python u svojoj temeljnoj distribuciji sadrži Tkinter  biblioteku za rad s grafikom.

Koristit ćemo graphics.py za rad s grafikom i ona u sebi sadrži klasu koja je izvedena
iz klasa implementiranih u Tk biblioteci.

Za neke druge grafičke biblioteke pogledati: wxPython, PyQt, ...


Uvod u Python

Moduli u graphics.py paketu I

GraphWin objekt – predstavlja


predstavlja grafički
grafiˇ
cki prozor
prozor i prostor
prostor u kojem se mogu prikazati
prikazati
grafiˇ
gra fičk
ckii eleme
elementi
nti
• GraphWin(title,width,height) – instancira objekt klase GraphWin koji ima
naziv title, i dimenzije width × height.
• plot(x,y,color) – metoda crta piksel na poziciji ( x , y ) boje color .
• setBackground(color) – postavlja boju pozadine prozora
• close() – metoda zatvara aktivni prozor
• getMouse() – metoda vraća
vra´
ca Point objekt na poziciji na kojoj korisnik klikne
miš
iˇseem
• setCoords(x1,y1,x2,y2) – postavlja koordinanti sustav prozora (x1,y1) –
(x2,y2) dijagonala prozora

Graphics objekti – modul predstavlja geometrijske


geometri jske elemene točke,
toˇ
cke, pravca, kružnice,
kruˇ
znice,
elipse, pravokutnika, poligona i teksta redom kao klase imenom Point,
Point, Line,
Circle,
Circle, Oval,
Oval, Rectangle
Rectangle,
, Polygon,T
Polygon,Text
ext
• setFill(color) – postavlja
posta vlja boju interijera
interi jera grafičkog
grafiˇckog objekta
obj ekta
• setOutline(color) – postavlja boju oruba geometrijskog objekta
• setWidth(pixels) – metoda
meto da postavlja
posta vlja ˇsirinu
širinu oruba objekta na veličinu
veliˇcinu pixels
• draw(GraphWinObj) – metoda crta objekt unutar GraphWinObj objekta
Uvod u Python

Moduli u graphics.py paketu II


• move(dx,dy) – pomjeri objekt za dx jedinica po osi x , i dy jedinica po osi y 
• clone() – metoda vraća
vra´
ca duplikat
duplikat objekta koji je u neiscrtanom stanju
Point metode
• Point(x,y) – stvara točku
toˇ
cku s danim koordinatama
• getX(),getY() – vrać
a´ca
a x , odnosno y  koordinatu
Line metode
• Line(pt1,pt2) – metod
met oda
a konstruira
konstr uira dužinu
duˇzinu od točaka
toˇcaka pt1,pt2
• getCenter() – vra´
vr aća
ca polov
ol oviˇ
išt
stee segm
se gmen
enta
ta
• getP1(),
• getP
ge tP2(
2()) – vra´
vr aća
ca točke
toˇcke koje
koj e ˇcine
či ne kraj
krajev
evee duži
duˇzine
ne
Circle metode
• Circle(center,radius) – metoda konstuira kružnicu
kruˇznicu s danim centrom i
radijusom
• getCenter() – vrati
vrati točku
toˇcku centra
cen tra kružni
kruˇznice
ce
• getRadius() – vra´
vr aća
ca dul
duljijinu
nu radij
ra dijusa
usa kružni
kruˇznice
ce
• getP1(), getP2() – vraća
getP1(), getP2() vra´ca 2 krajnje
kraj nje točke
toˇcke horizonta
horiz ontalog
log promjera
promj era
Rectangular metode
• Rectangle(pt1, pt2) – konsturir
Rectangle(pt1, konstu rira
a pravokutni
pravok utnik
k ˇciju
čij u dij
dijagon
agonalu
alu tvore točke
toˇcke
pt1,pt2
Uvod u Python

Moduli u graphics.py paketu III


• getCenter() – sjecište
sjeciˇste dijagonala
dijagona la pravokutnika
• getP1(), getP2() – vraća
getP1(), getP2() vra´
ca kranje točke
toˇ
cke s kojima je instanciran
instancir an objekt
Oval metode
• Oval(pt1, pt2) – konsturira
Oval(pt1, konsturira elipsu u okviru odredenim dijagonalom ˇcije
čije su
kraj
kr ajnj
njee točke
toˇcke pt1,pt2.
• getCenter() – vra´
vr aća
ca točku
toˇcku centr
cen tra
a elip
el ipse
se
• getP1(), getP2() – vraća
getP1(), getP2() vra´
ca kranje točke
toˇ
cke s kojima je instanciran
instancir an objekt
Poylgon metode
• Polygo
Polygon(p
n(pt1,
t1, pt2,
pt2, pt3,
pt3, ...)
...) – konstuira
konstu ira po
polig
ligon
on ˇciji
čij i vrhovi
vrho vi su točke
toˇcke
pt1,pt2,...
• getPoints() – vraća
vra´ca listu
list u točaka
toˇcaka koje tvore po
polig
ligon
on
Text metode
• Text(anch
Text(anchor, string) – stvara objekt koji na točki
or, string) toˇ
cki anchor sadrˇ
sadrži
zi stri
st ring
ng string.
• setText(string) – postavlja tekst objekta na string string
• getText() – vrati trenutni string
• getAnchor() – vrati točku
toˇ
cku na kojoj je postavljen tekst
• setFace(family) – promjena fonta u familiju family. Familiju fonta možemo
moˇ
zemo
birati izmedu ’helvetica’, ’courier’, ’times roman’, i ’arial’
• setSize(point) – promjena
promj ena veliˇ
vel ičine
cine slova
slov a na veliˇ
vel ičinu
cinu point
Uvod u Python

Moduli u graphics.py paketu IV

• setStyle(style) – promjena stila fonta na stil style koji može biti ’normal’,
’bold’, ’italic’, i ’bold italic’
Uvod u Python

Primjer
Napravite grafički prozor u kojem će biti prikazan uzorak za igru ’kružić-križić’.
Uvod u Python

Primjer
Napravite grafički prozor u kojem će biti prikazan uzorak za igru ’kružić-križić’.
1 # c r ea t e a d e fa u lt 2 00 x 2 00 w i nd o w
2 from g r a p h i c s i m p o r t *
3 w in = G r ap h Wi n (" T i c - T a c - T o e ")
4 # s et c oo rd in at es t o g o f ro m ( 0 ,0 ) i n t he l ow er l ef t
5 # t o ( 3 ,3 ) i n t he u pp er r ig ht .
6 w i n . s e t Co o r d s ( 0. 0 , 0 . 0 , 3 . 0 , 3 . 0)
7 # D ra w v e rt i ca l l i ne s
8 L i n e ( P oi n t ( 1 , 0) , P o i nt ( 1 , 3 ) ) . d r aw ( w i n )
9 L i n e ( P oi n t ( 2 , 0) , P o i nt ( 2 , 3 ) ) . d r aw ( w i n )
10 # D ra w h o ri z on t al l i ne s
11 L i n e ( P oi n t ( 0 , 1) , P o i nt ( 3 , 1 ) ) . d r aw ( w i n )
12 L i n e ( P oi n t ( 0 , 2) , P o i nt ( 3 , 2 ) ) . d r aw ( w i n )
Uvod u Python

Primjer
Napravite grafički prozor u kojem ćete s 3 klika miša definirati točke. Napravite objekt 
trokut uz pomoć tih 3 točke i definirajte mu boju ispune i boju oruba.
Uvod u Python

Primjer
Napravite grafički prozor u kojem ćete s 3 klika miša definirati točke. Napravite objekt 
trokut uz pomoć tih 3 točke i definirajte mu boju ispune i boju oruba.
1
2 # p r og r am z a c r ta n je t r ok u ta
3 from g r a p h i c s i m p o r t *
4
5 de f c r t a j T r o k u t ( ) :
6
7 w in = G r ap h Wi n (" T r o k u t " )
8 w i n . s e t Co o r d s ( 0. 0 , 0 . 0 , 1 0 .0 , 1 0 . 0) # p o s t ov i k o o r di n a t n i s u s t a v
9
10 m e s s ag e = T e xt ( P o i n t ( 5 , 0 . 5 ) , " O z na c it e 3 t o ck e : ") # t e ks t k o me n ta r a
11 message.draw(win)
12
13 # u ci ta j i n ac rt aj 3 t oc ke
14 p 1 = w in . g e tM o us e ( )
15 p1.draw(win)
16 p 2 = w in . g e tM o us e ( )
17 p2.draw(win)
18 p 3 = w in . g e tM o us e ( )
19 p3.draw(win)
20
21 # k o ri s ti p o li g on o b je k t k ak o b i n a cr t ao t r ok u t
22 t r i a ng l e = P o l yg o n ( p 1 , p2 , p 3 )
23 t r i a n g l e . s e t F i l l ( " r e d ") # p o st a vi i s pu n u
24 t r i a n g l e . s e t O u t l i n e ( " c y a n ") # p o st a vi o b ru b
25 t r i a n g l e . d r a w ( w i n ) # n a cr t al t r ok u t
26
27 # n ov i k li k j e i zl az
28 m e s s a g e . s e t T e x t ( " K l ik n i j os j e dn o m n a i z la z . .. " )
29 win.getMouse()
30
31
32 crtajTrokut()
Uvod u Python

Primjer
Napravite grafički program koji će unositi temperaturu u Celziusovim stupnjevima, a
vraćati vrijednost u Fahrenheit skali.
Uvod u Python

Primjer
Napravite grafički program koji će unositi temperaturu u Celziusovim stupnjevima, a
vraćati vrijednost u Fahrenheit skali.
1 # g r af i ck o s u ce l je z a p r et v ar a nj e t e mp e ra t ur e i z c e lz i us a u F a re n he i t t em p .
2
3 from g r a p h i c s i m p o r t * # u k l j u ci v a n je g r a f ic k o g p a k et a
4 de f m a i n ( ) :
5 w in = G r ap h Wi n (" C e l s i us C o n v er t e r ", 3 00 , 2 00 )
6 w i n . s e t Co o r d s ( 0. 0 , 0 . 0 , 3 . 0 , 4 . 0)
7 # D ra w t he i n te r fa c e
8 T e x t ( P o i n t ( 1 , 3 ) , " C e l s iu s T e m p er a t u r e : ") . d r a w ( w i n )
9 T e x t ( P o i n t ( 1 , 1 ) , " F a h r e n he i t T e m p e ra t u r e : ") . d r a w ( w i n )
10 i n pu t = E n tr y ( P oi nt ( 2 , 3) , 5 )
11 i n p u t . s e t T e x t ( " 0 . 0 ")
12 input.draw(win)
13 o u t p ut = T e x t ( P o in t ( 2 , 1 ) ," " )
14 output.draw(win)
15 b u t t on = T e x t ( P o in t ( 1 . 5 , 2 .0 ) , " C o n v e rt I t ")
16 button.draw(win)
17 R e c t an g l e ( P o i nt ( 1 , 1 . 5) , P o i nt ( 2 , 2 . 5) ) . d r aw ( w i n )
18
19 # p r ic e ka j z a k li k m is a
20 win.getMouse()
21 # p r e t vo r i v r i j ed n o s t
22 c e l s iu s = e v al ( i n p u t . g e t T ex t ( ) )
23 f a hr e nh e it = 9 . 0/ 5 .0 * c e ls i us + 3 2
24 # p r ik a zi r e zu l ta t i i p r om i je n i t e ks t d u gm e ta
25 o u t p u t . s e t T e x t ( " % 0 . 1 f " % f a h r en h e i t )
26 button.setText( "Quit" )
27 # c ek aj z a k l ik i i zl az
28 win.getMouse()
29 win.close()
30
31 main()
Uvod u Python

Zadaci

Zadatak
Napišite grafički program u Pythonu koji će imati input polja za upis parametara
a, b , c kvadratne funkcije f (x ) = ax 2 + bx  + c , a 
= 0 te granice domene l , r i nakon
upisa vrijednosti ispisati koordinatni sustav u kojem će se nalaziti graf funkcije f  (x ) na
domeni  [l , r ].
Napomena: Graf možete diskretno aproksimirati s točkama (x i , f (x )), i  = 1, . . . , k 
gdje je k broj uzoraka i zatim točke grafa povezati dužinama.
Uvod u Python

Zaključak

Što dalje?

• Minicourse: kratki uvod u Python, NIJE CIJELI KURS. Zahtjev na samostalni rad
uz preporučenu literaturu.
Uvod u Python

Zaključak

Što dalje?

• Minicourse: kratki uvod u Python, NIJE CIJELI KURS. Zahtjev na samostalni rad
uz preporučenu literaturu.
• Pitanja iz Pythona ? Konzultacije u dogovoru sa asistentima.
Uvod u Python

Zaključak

Što dalje?

• Minicourse: kratki uvod u Python, NIJE CIJELI KURS. Zahtjev na samostalni rad
uz preporučenu literaturu.
• Pitanja iz Pythona ? Konzultacije u dogovoru sa asistentima.
• Python u primjeni  – ostale vježbe.

You might also like