Professional Documents
Culture Documents
1python Tutorial
1python Tutorial
Python – minicourse
Raču
Raˇcuna
naln
lnee mr
mreˇ
eže
ze i uslu
usluge
ge
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
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 "
Varijable i unos
Varijable i unos
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
Operacije i operatori
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
Ponavljaj uz uvjet . . .
While ...
1 while izraz:
2 naredba(e)
Primjeri
Primjeri
Primjer (Fibonnaci)
Za dani n ispišite n Fibonaccijevih brojeva.
Uvod u Python
Primjeri
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
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 u Pythonu
OOP u Pythonu
OOP u Pythonu
OOP u Pythonu
OOP u Pythonu
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 .. .
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
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 ).
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 ).
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 ).
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 ).
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 ).
Biblioteke
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
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
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
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
Koristit ćemo graphics.py za rad s grafikom i ona u sebi sadrži klasu koja je izvedena
iz klasa implementiranih u Tk biblioteci.
• 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.