V1 Python Tutorial
Transcript of V1 Python Tutorial
Uvod u Python
Python – minicourseRacunalne mreze i usluge
Odjel za matematiku 2012
Uvod u Python
Jezicne znacajke
Python je interpreterski, interaktivni programski jezik koji podrzava nekolikoprogramerskih paradigmi s naglaskom na citljiv kod.
Tvorac: Guido von RossumPrimjena: MIT, NASA, IBM, Google, . . .Licenca: open-source
• Interpretacija medukoda - izvrsavanje ’naredbe po naredbu’
• Jezik visoke razine - pretpostavljeno podrzava ADT
• cista sintaksa – relativno lagani prijelaz s pseudokoda na implementaciju
• podrzava nekoliko programerskih paradigmi (proceduralno programiranje, OOP,funkcionalno programiranje, ...)
• prosirivost (CPython, Jython, IronPython (.NET))
• bogata biblioteka programa - Python Cheese Shop - PyPI.
Uvod u Python
Izvodenje python programa
2 nacina rada:
• Interaktivni rad – u konzolu se upisuju naredbe programskog jezika koje se odmahinterpretiraju (izvrsavaju).
1 Python 2.7 (r32 :88445 , Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel )] on win32
2 Type "copyright", "credits" or "license ()" for more information.
3 >>> print "Hello World"
• Skriptni rad – Programi se spremaju u skripte a onda se kao Unix/Linux iliWindows skripte pozivaju iz sistemske linije.
1 python imeskripte.py
• Ugradeni kod – izvodenje Python koda u drugim programskim jezicima
Uvod u Python
Varijable i unos
U Pythonu nema ekplicitine deklaracije tipa varijable, interpreter na temeljuincijalizacije prepoznaje tip.
Ispis na konzolu: print naredba
Primjer (”Hello, World!”)
1 >>> print "Hello , World!"
Izraz za unos podataka s konzole: input naredba.
Primjer (Unos)Napisite program koji ce za uneseno ime napisati ”Dobrodosli, ime, u svijet Pythona”.
1 #ime.py
2 ime=raw_input("Unesite ime:") #’ime’
3 print "Dobrodosli "+ime+" u svijet Pythona"
45 python ime.py
Uvod u Python
Varijable i unos
U Pythonu nema ekplicitine deklaracije tipa varijable, interpreter na temeljuincijalizacije prepoznaje tip.
Ispis na konzolu: print naredba
Primjer (”Hello, World!”)
1 >>> print "Hello , World!"
Izraz za unos podataka s konzole: input naredba.
Primjer (Unos)Napisite program koji ce za uneseno ime napisati ”Dobrodosli, ime, u svijet Pythona”.
1 #ime.py
2 ime=raw_input("Unesite ime:") #’ime’
3 print "Dobrodosli "+ime+" u svijet Pythona"
45 python ime.py
Uvod u Python
Tipovi podataka
Osnovne tipove podataka Python predstavlja u objektima.
Kategorija Ime Opis
Prazno (None) NoneType ’null’ objekt
Brojevi IntType Cijeli brojFractionalType Razlomak
FloatType Realni broj s pom. zarezomComplexType Kompleksni broj
Nizovi StringType Niz znakova (string)UnicodeType Unicode (string)ListType Listina, popis ili listaTupleType n-teracXRangeType Vraceno iz xrange()BufferType Vraceno iz buffer()
Preslikavanje DictType Rjecnik
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
# Cjelobrojni literal
2 13.514
# Realni (Floating -point) literal
3 5.0J # Imaginarni literal
4 ’hello’
# String literal , niz znakova
1 [ 63, ’faks’, 8.6 ] # Listina , lista ili popis
2 ( 450, 320, ’600’ ) # n-terac
3 { ’a’:72, ’b’:1.4 } # rjecnik
Uvod u Python
ADT
tipovi podataka vise razine (ADT) u Pythonu:
• Liste (lists): [’a’,1,’b’,16]
• N-terci (tuples): (1,10,3)
• Rjecnici (dictionaries): {’a’:1,’b’:2,’c’:3}
• Skupovi (sets)
U Pythonu je definiran poveci broj operacija za rad sa spomenutim tipovima podataka.
Uvod u Python
Malo igre sa spomenutim tipovima podataka...
Razliciti tipovi literala.
1 >>> type("Python") # string literal
2 <type ’str’>
3 >>> type (512)
# numericki literal
4 <type ’int’>
5 >>> k=2.178
# varijabla k
6 >>> type(k)
7 <type ’float’>
8 >>> type ({ ’a’:72, ’b’:1.4 })
9 <type ’dict’>
10 >>> z=2+3j
# varijabla z
11 >>> type(z)
12 <type ’complex ’>
U Python 3 verziji postoji tip podataka razlomci:
1 import fractions
2 x=fractions.Fraction (1,3) # 1/3
3 y=fractions.Fraction (1,2) #1/2
4 z=x+y # 5/6
Vrijednosti i funkcije iz modula:
1 >>>import math
2 >>> print math.pi, math.sin (2.3)
3 3.14159265359 0.745705212177
Uvod u Python
Operacije i operatori
Python podrzava vecinu operatora i operacija koji su podrzani u ostalim programskimjezicima:
1. aritmeticke operacije (+,−, ∗∗, /, . . .)2. operatori pridruzivanja (=,+ =, ∗ =, ∗∗ =, . . .)
3. logicki operatori (x < y , x <= y , x > y , x >= y , x <> y , x! = y , x == y)
4. specijalizirane operacije na pojedinim tipovima podataka (ugradene metode uobjekte)
Uvod u Python
Operatori nad tipovima podataka:’izraz,...’ String pretvorba
key:izraz,... Stvaranje rjecnika
[izraz,...] Stvaranje liste
(izrazr,...) Stvaranje n-terca ili jednostavne zagrade
f(izraz,...) Poziv funkcije
x[index1:index2] Kriska (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 Mnozenje, 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 clanstva
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
PrimjerNapisite Python program koji ce za unesene stranice trokuta a, b, c izracunati povrsinutog trokuta.
1 import math
2 print("Racun za povrsinu trokuta ")
3 a = input("a:") #pretpostavka: nejednakost trokuta
4 b = input("b:")
5 c=input("c:")
67 s=(a+b+c)/2
8 print "povrsina trokuta je ",math.sqrt(s*(s-a)*(s-b)*(s-c))
9 print "Opseg trokuta je ",a+b+c
PrimjerNapisite Python program koji ce sortirati unesenu listu brojeva pomocu ugradenefunkcije sort().
1 lista =[2,6,1,4,5,7]
2 lista.sort()
3 print lista
PrimjerPython program s pozdravom.
1 ime=input("Vase ime:")
2 titula=input("titula:")
34 print "Dobrodosli u svijet Pythona , %s %s" % (titula ,ime)
Uvod u Python
Primjeri
PrimjerNapisite Python program koji ce za unesene stranice trokuta a, b, c izracunati povrsinutog trokuta.
1 import math
2 print("Racun za povrsinu trokuta ")
3 a = input("a:") #pretpostavka: nejednakost trokuta
4 b = input("b:")
5 c=input("c:")
67 s=(a+b+c)/2
8 print "povrsina trokuta je ",math.sqrt(s*(s-a)*(s-b)*(s-c))
9 print "Opseg trokuta je ",a+b+c
PrimjerNapisite Python program koji ce sortirati unesenu listu brojeva pomocu ugradenefunkcije sort().
1 lista =[2,6,1,4,5,7]
2 lista.sort()
3 print lista
PrimjerPython program s pozdravom.
1 ime=input("Vase ime:")
2 titula=input("titula:")
34 print "Dobrodosli u svijet Pythona , %s %s" % (titula ,ime)
Uvod u Python
Primjeri
PrimjerNapisite Python program koji ce za unesene stranice trokuta a, b, c izracunati povrsinutog trokuta.
1 import math
2 print("Racun za povrsinu trokuta ")
3 a = input("a:") #pretpostavka: nejednakost trokuta
4 b = input("b:")
5 c=input("c:")
67 s=(a+b+c)/2
8 print "povrsina trokuta je ",math.sqrt(s*(s-a)*(s-b)*(s-c))
9 print "Opseg trokuta je ",a+b+c
PrimjerNapisite Python program koji ce sortirati unesenu listu brojeva pomocu ugradenefunkcije sort().
1 lista =[2,6,1,4,5,7]
2 lista.sort()
3 print lista
PrimjerPython program s pozdravom.
1 ime=input("Vase ime:")
2 titula=input("titula:")
34 print "Dobrodosli u svijet Pythona , %s %s" % (titula ,ime)
Uvod u Python
Primjeri
PrimjerNapisite Python program koji ce za unesene stranice trokuta a, b, c izracunati povrsinutog trokuta.
1 import math
2 print("Racun za povrsinu trokuta ")
3 a = input("a:") #pretpostavka: nejednakost trokuta
4 b = input("b:")
5 c=input("c:")
67 s=(a+b+c)/2
8 print "povrsina trokuta je ",math.sqrt(s*(s-a)*(s-b)*(s-c))
9 print "Opseg trokuta je ",a+b+c
PrimjerNapisite Python program koji ce sortirati unesenu listu brojeva pomocu ugradenefunkcije sort().
1 lista =[2,6,1,4,5,7]
2 lista.sort()
3 print lista
PrimjerPython program s pozdravom.
1 ime=input("Vase ime:")
2 titula=input("titula:")
34 print "Dobrodosli u svijet Pythona , %s %s" % (titula ,ime)
Uvod u Python
Primjeri
PrimjerNapisite Python program koji ce za unesene stranice trokuta a, b, c izracunati povrsinutog trokuta.
1 import math
2 print("Racun za povrsinu trokuta ")
3 a = input("a:") #pretpostavka: nejednakost trokuta
4 b = input("b:")
5 c=input("c:")
67 s=(a+b+c)/2
8 print "povrsina trokuta je ",math.sqrt(s*(s-a)*(s-b)*(s-c))
9 print "Opseg trokuta je ",a+b+c
PrimjerNapisite Python program koji ce sortirati unesenu listu brojeva pomocu ugradenefunkcije sort().
1 lista =[2,6,1,4,5,7]
2 lista.sort()
3 print lista
PrimjerPython program s pozdravom.
1 ime=input("Vase ime:")
2 titula=input("titula:")
34 print "Dobrodosli u svijet Pythona , %s %s" % (titula ,ime)
Uvod u Python
Kontrolne strukture
Kontrolne strukture koje podrzava Python:
if . . . then . . . else1 if uvjet(i):
2 naredba(e)
3 elif uvjet(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 for cilj in nizu:
2 naredba(e)
Uvod u Python
Primjeri
Primjer (Aritmeticka sredina)Za dani niz podataka treba odrediti njegovu aritmeticku sredinu.
1 print("Unesite brojeve za racunanje")
2 print("Za izlaz upisite 0")
34 suma =0.0
5 broj=input("Upisite broj")
6 n=1 #brojimo elemente
78 while (broj !=0):
9 broj=input("Upisite broj:")
10 n+=1
11 suma+=broj
1213 print suma/n
Primjer (Fibonnaci)Za dani n ispisite n Fibonaccijevih brojeva.
1 n=eval(input("Koliko zelite fibonaccijevih brojeva:"))
2 result = []
3 a, b = 0, 1
4 while b < n:
5 result.append(b)
6 a, b = b, a+b
78 print "Fibonaccijevi brojevi: "
9 for broj in result:
10 print broj , " "
Uvod u Python
Primjeri
Primjer (Aritmeticka sredina)Za dani niz podataka treba odrediti njegovu aritmeticku sredinu.
1 print("Unesite brojeve za racunanje")
2 print("Za izlaz upisite 0")
34 suma =0.0
5 broj=input("Upisite broj")
6 n=1 #brojimo elemente
78 while (broj !=0):
9 broj=input("Upisite broj:")
10 n+=1
11 suma+=broj
1213 print suma/n
Primjer (Fibonnaci)Za dani n ispisite n Fibonaccijevih brojeva.
1 n=eval(input("Koliko zelite fibonaccijevih brojeva:"))
2 result = []
3 a, b = 0, 1
4 while b < n:
5 result.append(b)
6 a, b = b, a+b
78 print "Fibonaccijevi brojevi: "
9 for broj in result:
10 print broj , " "
Uvod u Python
Primjeri
Primjer (Aritmeticka sredina)Za dani niz podataka treba odrediti njegovu aritmeticku sredinu.
1 print("Unesite brojeve za racunanje")
2 print("Za izlaz upisite 0")
34 suma =0.0
5 broj=input("Upisite broj")
6 n=1 #brojimo elemente
78 while (broj !=0):
9 broj=input("Upisite broj:")
10 n+=1
11 suma+=broj
1213 print suma/n
Primjer (Fibonnaci)Za dani n ispisite n Fibonaccijevih brojeva.
1 n=eval(input("Koliko zelite fibonaccijevih brojeva:"))
2 result = []
3 a, b = 0, 1
4 while b < n:
5 result.append(b)
6 a, b = b, a+b
78 print "Fibonaccijevi brojevi: "
9 for broj in result:
10 print broj , " "
Uvod u Python
Funkcije
Funkcije su blokovi naredbi koji primaju vrijednosti ’izvana’ i mogu vratiti jednu ili visevrijednosti kao rezultat njihova racunanja.
1 def ime_funkcije(parametri ):
2 izraz(i)
PrimjerDefinirajte funkciju koja vraca aposolutnu vrijednost broja.
1 def abs(x):
2 if x<0:
3 return -x
4 else:
5 return x
67 print abs(-5) # ispisuje 5
Uvod u Python
Funkcijski argumenti
Parametri su varijable cije vrijednosti uzima funkcija.
Primjer (Artimeticka sredina)Funkcija aritmeticke sredine za proizvoljne brojeve.
1 def Mean(* brojevi ):
2 n=0
3 suma =0.0
4 for x in brojevi:
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
PrimjerDefinirajte funkciju koja ce provjeravati da li je broj prost i dodatnu funkciju koja ce zaproslijedene brojeve racunati samo sumu prostih brojeva.
1 import math
23 def Prime(broj):
4 for p in range(2,broj):
5 if (broj % p == 0):
6 return False
7 return True
1 import math
23 def prime_sum (* brojevi ):
4 suma =0.0
5 for x in brojevi:
6 if Prime(x):
7 suma=suma+x
8 return suma
Uvod u Python
Primjeri
PrimjerDefinirajte funkciju koja ce provjeravati da li je broj prost i dodatnu funkciju koja ce zaproslijedene brojeve racunati samo sumu prostih brojeva.
1 import math
23 def Prime(broj):
4 for p in range(2,broj):
5 if (broj % p == 0):
6 return False
7 return True
1 import math
23 def prime_sum (* brojevi ):
4 suma =0.0
5 for x in brojevi:
6 if Prime(x):
7 suma=suma+x
8 return suma
Uvod u Python
Zadaci
ZadatakNapisite Python program koji ce aproksimirati broj π tako da izracunate konacnusumu niza 4/1− 4/3 + 4/5− 4/7 + 4/9− 4/11 + . . .. Korisnik treba unjeti broj n kojipredstavlja broj clanova ovog niza.
ZadatakNapisite Python program koji ce za uneseno ime i prezime generirati korisnicko imetako da ga slozi kao string od prvog znaka imena i od prvih sedam znakova prezimena.Ime i prezime moraju biti prebaceni u mala slova.
Uvod u Python
OOP – objektno orijentirano programiranje
Klase – kolekcija podataka (atributa) sa skupom metoda za pristup i manipulaciju timpodacima.
Objekt – instanca klase - varijabla koja sadrzi atribute i metode s postavljenimvrijednostima kako je propisala klasa koju je instancira.
Vazne karakteristike OOP:
1. polimorfizam (engl. polymorphism) – manipulirati objektima bez eksplicitnogznanja o tipu ili klasi kojima pripadaju objekti.
2. enkapsulacija (engl. encapsulation) – atributima i metodama se mogu pridjelitirazine pristupa koje mogu biti privatne ili javne.
3. nasljedivanje (engl. inheritance) – skupovni odnos izmedu klasa (klasa moze bitipodklasa neke druge klase)
Uvod u Python
OOP – objektno orijentirano programiranje
Klase – kolekcija podataka (atributa) sa skupom metoda za pristup i manipulaciju timpodacima.
Objekt – instanca klase - varijabla koja sadrzi atribute i metode s postavljenimvrijednostima kako je propisala klasa koju je instancira.
Vazne karakteristike OOP:
1. polimorfizam (engl. polymorphism) – manipulirati objektima bez eksplicitnogznanja o tipu ili klasi kojima pripadaju objekti.
2. enkapsulacija (engl. encapsulation) – atributima i metodama se mogu pridjelitirazine pristupa koje mogu biti privatne ili javne.
3. nasljedivanje (engl. inheritance) – skupovni odnos izmedu klasa (klasa moze bitipodklasa neke druge klase)
Uvod u Python
OOP u Pythonu
Klasa ili razred je Python objekt s nekoliko znacajki:
• Objekt klase moze se pozivati kao da je funkcija. Poziv stvara novi objekt, poznatkao 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 moze imati posebno ime definirano od Pythona s dvije podcrte (’ ’)ispred i iza imena. Python upotrebljava takve posebne metode za neke operacijekoje se izvrsavaju na instancama klase. (konstruktor)
• Klasa moze podatke i metode naslijediti od drugih klasa
Uvod u Python
OOP u Pythonu
Klasa ili razred je Python objekt s nekoliko znacajki:
• Objekt klase moze se pozivati kao da je funkcija. Poziv stvara novi objekt, poznatkao 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 moze imati posebno ime definirano od Pythona s dvije podcrte (’ ’)ispred i iza imena. Python upotrebljava takve posebne metode za neke operacijekoje se izvrsavaju na instancama klase. (konstruktor)
• Klasa moze podatke i metode naslijediti od drugih klasa
Uvod u Python
OOP u Pythonu
Klasa ili razred je Python objekt s nekoliko znacajki:
• Objekt klase moze se pozivati kao da je funkcija. Poziv stvara novi objekt, poznatkao 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 moze imati posebno ime definirano od Pythona s dvije podcrte (’ ’)ispred i iza imena. Python upotrebljava takve posebne metode za neke operacijekoje se izvrsavaju na instancama klase. (konstruktor)
• Klasa moze podatke i metode naslijediti od drugih klasa
Uvod u Python
OOP u Pythonu
Klasa ili razred je Python objekt s nekoliko znacajki:
• Objekt klase moze se pozivati kao da je funkcija. Poziv stvara novi objekt, poznatkao 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 moze imati posebno ime definirano od Pythona s dvije podcrte (’ ’)ispred i iza imena. Python upotrebljava takve posebne metode za neke operacijekoje se izvrsavaju na instancama klase. (konstruktor)
• Klasa moze podatke i metode naslijediti od drugih klasa
Uvod u Python
OOP u Pythonu
Klasa ili razred je Python objekt s nekoliko znacajki:
• Objekt klase moze se pozivati kao da je funkcija. Poziv stvara novi objekt, poznatkao 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 moze imati posebno ime definirano od Pythona s dvije podcrte (’ ’)ispred i iza imena. Python upotrebljava takve posebne metode za neke operacijekoje se izvrsavaju na instancama klase. (konstruktor)
• Klasa moze podatke i metode naslijediti od drugih klasa
Uvod u Python
sintaksa
Definiranje klase:
1 class ime_klase [(klase roditelji )]:
2 izraz1
3 izraz2
4 ...
5 def metoda1 ():
6 ...
7 def metoda2 ():
8 ...
9 ...
ilustracija: atributi, funkcije, . . .
1 >>> class Moja_klasa:
2 ... x=23
3 ...
4 >>> objekt1=Moja_klasa ()
5 >>> objekt1.x=51
6 >>> print(objekt1.x)
7 51
8 >>> objekt2=Moja_klasa ()
9 >>> print(objekt2.x)
10 23
Provjera da li neki objekt instanca neke klase:
1 >>> objekt3 =5
2 >>> isinstance(objekt1 ,Moja_klasa)
3 True
4 >>> isinstance(objekt3 ,Moja_klasa)
5 False
Uvod u Python
sintaksa
Definiranje klase:
1 class ime_klase [(klase roditelji )]:
2 izraz1
3 izraz2
4 ...
5 def metoda1 ():
6 ...
7 def metoda2 ():
8 ...
9 ...
ilustracija: atributi, funkcije, . . .
1 >>> class Moja_klasa:
2 ... x=23
3 ...
4 >>> objekt1=Moja_klasa ()
5 >>> objekt1.x=51
6 >>> print(objekt1.x)
7 51
8 >>> objekt2=Moja_klasa ()
9 >>> print(objekt2.x)
10 23
Provjera da li neki objekt instanca neke klase:
1 >>> objekt3 =5
2 >>> isinstance(objekt1 ,Moja_klasa)
3 True
4 >>> isinstance(objekt3 ,Moja_klasa)
5 False
Uvod u Python
Enkapsulacija
U klasi mogu biti definirani razine pristupa metodama i atributima. Te razine mogubiti private i public i deklarirane su ovisno o broju podcrta (__) u prefiksu imenametoda/atributa:
1 self.__identifikator # privatna varijabla klase (private)
2 self.identifikator # javna varijabla klase (public)
Primjer (Osoba)Klasa koja sadrzi javne i privatne varijable.
1 #7. OOP u Pythonu
23 # jednostavni primjer klase i instanciranja
45 class Osoba (): #definiranje klase
6 "klasa s kojom instanciramo ’osobe’"
7 def postaviIme(self ,ime): #metode
8 self.__ime=ime #privatni atributi
9 def dajIme(self):
10 return self.__ime
11 def pozdrav(self):
12 print("Dobrodosli , gdine %s u svijet Pythona!" %self.name)
1314 osoba1=Osoba() #instanciranje objekta klase Osoba
15 osoba1.postaviIme(’Pero’)
16 osoba1.pozdrav ()
1718 osoba2=Osoba()
19 osoba2.postaviIme(’Ivo’)
20 osoba2.pozdrav ()
2122 print("Imena novih pythonista su %s i %s!"%( osoba1.getName(),osoba2.getName ()))
Uvod u Python
Enkapsulacija
U klasi mogu biti definirani razine pristupa metodama i atributima. Te razine mogubiti private i public i deklarirane su ovisno o broju podcrta (__) u prefiksu imenametoda/atributa:
1 self.__identifikator # privatna varijabla klase (private)
2 self.identifikator # javna varijabla klase (public)
Primjer (Osoba)Klasa koja sadrzi javne i privatne varijable.
1 #7. OOP u Pythonu
23 # jednostavni primjer klase i instanciranja
45 class Osoba (): #definiranje klase
6 "klasa s kojom instanciramo ’osobe’"
7 def postaviIme(self ,ime): #metode
8 self.__ime=ime #privatni atributi
9 def dajIme(self):
10 return self.__ime
11 def pozdrav(self):
12 print("Dobrodosli , gdine %s u svijet Pythona!" %self.name)
1314 osoba1=Osoba() #instanciranje objekta klase Osoba
15 osoba1.postaviIme(’Pero’)
16 osoba1.pozdrav ()
1718 osoba2=Osoba()
19 osoba2.postaviIme(’Ivo’)
20 osoba2.pozdrav ()
2122 print("Imena novih pythonista su %s i %s!"%( osoba1.getName(),osoba2.getName ()))
Uvod u Python
Inicijalizatori objekata
Za inicijalizaciju objekata koristimo posebnu funkciju zvanu konstruktor.
PrimjerNapisite Python klasu Pravokutnik u kojoj kontruktorom inicijalizirate vrijednostivarijabli visina, sirina i metode koje racunaju povrsinu odnosno opseg.
1 # Pravokutnik sa slucajnim duljinama stranicama
2 from random import *
3 import time
45 seed()
67 class Pravokutnik ():
8 def __init__(self ,sirina ,duljina ):
9 self.sirina=sirina
10 self.duljina=duljina
1112 def povrsina(self):
13 return self.duljina*self.sirina
1415 def opseg(self):
16 return 2*( self.duljina+self.sirina)
171819 # glavni program
2021 pravokutnici = []
2223 for i in range (1,3):
24 pravokutnik=Pravokutnik(random ()*10, random ()*10)
25 pravokutnici.append(pravokutnik)
2627 for pravokutnik in pravokutnici:
28 print "Povrsina pravokutnika je %.2f, a opseg %.2f " % (pravokutnik.povrsina(), pravokutnik.opseg ())
Uvod u Python
Inicijalizatori objekata
Za inicijalizaciju objekata koristimo posebnu funkciju zvanu konstruktor.
PrimjerNapisite Python klasu Pravokutnik u kojoj kontruktorom inicijalizirate vrijednostivarijabli visina, sirina i metode koje racunaju povrsinu odnosno opseg.
1 # Pravokutnik sa slucajnim duljinama stranicama
2 from random import *
3 import time
45 seed()
67 class Pravokutnik ():
8 def __init__(self ,sirina ,duljina ):
9 self.sirina=sirina
10 self.duljina=duljina
1112 def povrsina(self):
13 return self.duljina*self.sirina
1415 def opseg(self):
16 return 2*( self.duljina+self.sirina)
171819 # glavni program
2021 pravokutnici = []
2223 for i in range (1,3):
24 pravokutnik=Pravokutnik(random ()*10, random ()*10)
25 pravokutnici.append(pravokutnik)
2627 for pravokutnik in pravokutnici:
28 print "Povrsina pravokutnika je %.2f, a opseg %.2f " % (pravokutnik.povrsina(), pravokutnik.opseg ())
Uvod u Python
Nasljedivanje
Nasljedivanje je mehanizam stvaranja novih klasa koje specijaliziraju ili mijenjajuponasanje postojece klase.
1 class A:
2 varA = 42
3 def method1(self):
4 print("Class A : method1")
5 class B:
6 varB = 37
7 def method1(self):
8 print("Class B : method1")
9 def method2(self):
10 print("Class B : method2")
1112 class C(A,B): # Nasljeduje od A i B
13 varC = 3.3
14 def method2(self):
15 print("Klasa B: override :-)")
16 def method3(self):
17 print("Class C : method3")
1819 class D(A):
20 varD =100
21 def method4(self):
22 print("Subclass of A")
2324 objekt2=B()
25 objekt3=C()
26 objekt5=D()
2728 # print(objekt2.varA) # greska: objekt2 nema atribut varA
29 objekt3.varA # valjan ispis: 42
Uvod u Python
Nasljedivanje
Primjer klase i podklase:
Primjer (’SPAM’ filter)Napisite Python klasu koja ce dani niz procistiti od odredene rijeci.
1 class Filter:
2 def __init__(self):
3 self.blokirano =[]
4 def filter(self ,niz):
5 return [x for x in niz if x not in self.blokirano]
67 class SPAMFilter(Filter ):
8 def __init__(self):
9 self.blokirano =[’SPAM’]
101112 uzorak=Filter ()
13 print(uzorak.filter ([1 ,2 ,3]))
1415 filteruzorak=SPAMFilter ()
16 print(filteruzorak.filter ([’SPAM’,’SPAM’,1,4,2,’SPAM’ ,6,5]))
Uvod u Python
Zadaci
Zadatak 1
1. Napisite Python program u kojem ce te definirati klasu Trokut koja u sebi sadrzizasticene atribute a, b, c i javne metode povrsina() i opseg() koje ce racunatipovrsinu odnosno opseg trokuta. Definirajte konstruktor koji ce inicijaliziratiobjekt klase.
2. Definirajte Python klasu JednakokracniTrokut nasljedenu iz klase Trokut koji ukonstruktor prima samo parametre a, b i prosljeduje konstuktoru bazne klase.
Uvod u Python
Rjesenje.
1 # Trokut
23 import math
45 class Trokut:
6 "klasa koja definira trokut"
7 def __init__(self ,x,y,z):
8 self._a=x
9 self._b=y
10 self._c=z
1112 def opseg(self):
13 return self._a+self._b+self._c
1415 def povrsina(self):
16 s=(self._a+self._b+self._c)/2.0
17 return math.sqrt(s*(s-self._a)*(s-self._b)*(s-self._c))
1819 class JednakokracniTrokut(Trokut ):
20 def __init__(self ,a,b):
21 Trokut.__init__(self ,a,b,b)
2223 #glavni dio programa
24 trokut1=Trokut (3,4,5)
25 trokut2=JednakokracniTrokut (4,3)
26 print "povrsina trokut1 = ",trokut1.povrsina ()
27 print "povrsina trokut2 = ",trokut2.povrsina ()
Uvod u Python
Moduli i paketi
Podaci (varijable), funkcije, klase i objekti skupljaju se u module. Vise modula zajednocini paket. Moduli i paketi predstavljaju Python knjiznicu (engl. library).
Poziv modula postize se naredbom import:
1. Modul stvara novi prostor imena koji sluzi svim objektima definiranim u pripadnojizvornoj datoteci.
2. Modul izvrsava kod koji je sadrzan unutar novonastalog prostora imena.
3. Modul izvrsava ime unutar pozivatelja, koje se odnosi na prostor imena modula.Ovo ime podudara se s imenom modula.
Drugim rijecima, unutar jednog programa mozemo ukljucivati i druge programe.
1 >>> import this # Python zen -mudrost
Uvod u Python
Moduli i paketi
Podaci (varijable), funkcije, klase i objekti skupljaju se u module. Vise modula zajednocini paket. Moduli i paketi predstavljaju Python knjiznicu (engl. library).
Poziv modula postize se naredbom import:
1. Modul stvara novi prostor imena koji sluzi svim objektima definiranim u pripadnojizvornoj datoteci.
2. Modul izvrsava kod koji je sadrzan unutar novonastalog prostora imena.
3. Modul izvrsava ime unutar pozivatelja, koje se odnosi na prostor imena modula.Ovo ime podudara se s imenom modula.
Drugim rijecima, unutar jednog programa mozemo ukljucivati i druge programe.
1 >>> import this # Python zen -mudrost
Uvod u Python
Moduli i paketi
Podaci (varijable), funkcije, klase i objekti skupljaju se u module. Vise modula zajednocini paket. Moduli i paketi predstavljaju Python knjiznicu (engl. library).
Poziv modula postize se naredbom import:
1. Modul stvara novi prostor imena koji sluzi svim objektima definiranim u pripadnojizvornoj datoteci.
2. Modul izvrsava kod koji je sadrzan unutar novonastalog prostora imena.
3. Modul izvrsava ime unutar pozivatelja, koje se odnosi na prostor imena modula.Ovo ime podudara se s imenom modula.
Drugim rijecima, unutar jednog programa mozemo ukljucivati i druge programe.
1 >>> import this # Python zen -mudrost
Uvod u Python
Moduli i paketi
Podaci (varijable), funkcije, klase i objekti skupljaju se u module. Vise modula zajednocini paket. Moduli i paketi predstavljaju Python knjiznicu (engl. library).
Poziv modula postize se naredbom import:
1. Modul stvara novi prostor imena koji sluzi svim objektima definiranim u pripadnojizvornoj datoteci.
2. Modul izvrsava kod koji je sadrzan unutar novonastalog prostora imena.
3. Modul izvrsava ime unutar pozivatelja, koje se odnosi na prostor imena modula.Ovo ime podudara se s imenom modula.
Drugim rijecima, unutar jednog programa mozemo ukljucivati i druge programe.
1 >>> import this # Python zen -mudrost
Uvod u Python
Moduli i paketi
Podaci (varijable), funkcije, klase i objekti skupljaju se u module. Vise modula zajednocini paket. Moduli i paketi predstavljaju Python knjiznicu (engl. library).
Poziv modula postize se naredbom import:
1. Modul stvara novi prostor imena koji sluzi svim objektima definiranim u pripadnojizvornoj datoteci.
2. Modul izvrsava kod koji je sadrzan unutar novonastalog prostora imena.
3. Modul izvrsava ime unutar pozivatelja, koje se odnosi na prostor imena modula.Ovo ime podudara se s imenom modula.
Drugim rijecima, unutar jednog programa mozemo ukljucivati i druge programe.
1 >>> import this # Python zen -mudrost
Uvod u Python
Biblioteke
Primjer upotrebe import:
Prva programska skripta:
1 # datoteka: primjer.py
2 a = 37 # Varijabla
3 def A: # Funkcija
4 print("Ja sam u A")
5 class K: # Klasa
6 def B(self):
7 print("Ja sam u K.B")
8 b = K() # Tvorba instance
uvoz u drugu programsku skriptu:
1 import sys
2 # sys.path.append () # radni folder
3 import primjer # Ucitava u memoriju i izvodi modul ’primjer ’
4 print(primjer.a) # Dohvaca izvodi neki clan (varijablu) modula ’primjer ’
5 primjer.A() # Dohvaca i izvodi funkciju iz modula
6 c = primjer.K() # Dohvaca i izvodi klasu iz modula , tvorba objekta
Uvod u Python
Moduli u Python biblioteci
Moduli se mogu ucitati (importirati) koristeci alternativna imena, i to upotrebompoveznice as.Na primjer:
1 import os as sustav
2 import socket as mreza
3 sustav.chdir("..")
4 mreza.gethostname ()
5 ...
6 import math as matematika
7 x=matematika.sqrt (2)
Uvod u Python
Zadaci
Zadatak 2
1. Napisite Python program u kojem ce te definirati klasu Complex koja u sebisadrzi atribute Re, Im i preopteretite operatore +, ∗ tako da mozete primjenitiaritmeticki operator na dane objekte tipa Complex
2. Testiranje napravite u datoteci testComplex.py koja ce preuzeti Complex kaopaket s prijmjerom u = 2− i , v = 4 + 6i .
Uvod u Python
Rjesenje.
1 class Complex:
2 def __init__(self ,real ,imag =0):
3 self.real = float(real)
4 self.imag = float(imag)
5 def __repr__(self):
6 return "(Complex %s+%s)" % (self.real , self.imag)
7 def __str__(self):
8 return "%g+%gi" % (self.real , self.imag)
9 # self + other
10 def __add__(self ,drugi): # operator s lijeva
11 return Complex(self.real + drugi.real , self.imag + drugi.imag)
12 def __radd__(self ,drugi): # operator s desna
13 return Complex.__add__(drugi ,self)
14 # other - self
15 def __mul__(self ,drugi):
16 pass
17 def __rmul__(self ,drugi):
18 pass
19 def __coerce__(self , drugi):
20 if isinstance(drugi , Complex ):
21 return self ,drugi
2223 try: # Provjeriti ako se moze pretvoriti u float
24 return self , Complex(float(drugi))
25 except ValueError:
26 pass
2728 # testComplex.py
2930 from Complex import Complex
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 grafickim suceljem
Prakticna primjena OOP-a je implementacija struktura podataka grafickog prikaza.Python u svojoj temeljnoj distribuciji sadrzi Tkinter biblioteku za rad s grafikom.
Koristit cemo graphics.py za rad s grafikom i ona u sebi sadrzi klasu koja je izvedenaiz klasa implementiranih u Tk biblioteci.
Za neke druge graficke biblioteke pogledati: wxPython, PyQt, ...
Uvod u Python
GUI - rad s grafickim suceljem
Prakticna primjena OOP-a je implementacija struktura podataka grafickog prikaza.Python u svojoj temeljnoj distribuciji sadrzi Tkinter biblioteku za rad s grafikom.
Koristit cemo graphics.py za rad s grafikom i ona u sebi sadrzi klasu koja je izvedenaiz klasa implementiranih u Tk biblioteci.
Za neke druge graficke biblioteke pogledati: wxPython, PyQt, ...
Uvod u Python
GUI - rad s grafickim suceljem
Prakticna primjena OOP-a je implementacija struktura podataka grafickog prikaza.Python u svojoj temeljnoj distribuciji sadrzi Tkinter biblioteku za rad s grafikom.
Koristit cemo graphics.py za rad s grafikom i ona u sebi sadrzi klasu koja je izvedenaiz klasa implementiranih u Tk biblioteci.
Za neke druge graficke biblioteke pogledati: wxPython, PyQt, ...
Uvod u Python
Moduli u graphics.py paketu I
GraphWin objekt – predstavlja graficki prozor i prostor u kojem se mogu prikazatigraficki elementi
• GraphWin(title,width,height) – instancira objekt klase GraphWin koji imanaziv 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 vraca Point objekt na poziciji na kojoj korisnik kliknemisem
• setCoords(x1,y1,x2,y2) – postavlja koordinanti sustav prozora (x1,y1) –(x2,y2) dijagonala prozora
Graphics objekti – modul predstavlja geometrijske elemene tocke, pravca, kruznice,elipse, pravokutnika, poligona i teksta redom kao klase imenom Point, Line,
Circle, Oval, Rectangle, Polygon,Text
• setFill(color) – postavlja boju interijera grafickog objekta
• setOutline(color) – postavlja boju oruba geometrijskog objekta
• setWidth(pixels) – metoda postavlja sirinu oruba objekta na velicinu pixels
• draw(GraphWinObj) – metoda crta objekt unutar GraphWinObj objekta
• undraw() – brise objekt iz grafickog prozora
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 vraca duplikat objekta koji je u neiscrtanom stanju
Point metode
• Point(x,y) – stvara tocku s danim koordinatama
• getX(),getY() – vraca x , odnosno y koordinatu
Line metode
• Line(pt1,pt2) – metoda konstruira duzinu od tocaka pt1,pt2
• getCenter() – vraca poloviste segmenta
• getP1(),
• getP2() – vraca tocke koje cine krajeve duzine
Circle metode
• Circle(center,radius) – metoda konstuira kruznicu s danim centrom iradijusom
• getCenter() – vrati tocku centra kruznice
• getRadius() – vraca duljinu radijusa kruznice
• getP1(), getP2() – vraca 2 krajnje tocke horizontalog promjera
Rectangular metode
• Rectangle(pt1, pt2) – konsturira pravokutnik ciju dijagonalu tvore tockept1,pt2
Uvod u Python
Moduli u graphics.py paketu III
• getCenter() – sjeciste dijagonala pravokutnika
• getP1(), getP2() – vraca kranje tocke s kojima je instanciran objekt
Oval metode
• Oval(pt1, pt2) – konsturira elipsu u okviru odredenim dijagonalom cije sukrajnje tocke pt1,pt2.
• getCenter() – vraca tocku centra elipse
• getP1(), getP2() – vraca kranje tocke s kojima je instanciran objekt
Poylgon metode
• Polygon(pt1, pt2, pt3, ...) – konstuira poligon ciji vrhovi su tockept1,pt2,...
• getPoints() – vraca listu tocaka koje tvore poligon
Text metode
• Text(anchor, string) – stvara objekt koji na tocki anchor sadrzi string string.
• setText(string) – postavlja tekst objekta na string string
• getText() – vrati trenutni string
• getAnchor() – vrati tocku na kojoj je postavljen tekst
• setFace(family) – promjena fonta u familiju family. Familiju fonta mozemobirati izmedu ’helvetica’, ’courier’, ’times roman’, i ’arial’
• setSize(point) – promjena velicine slova na velicinu point
Uvod u Python
Moduli u graphics.py paketu IV
• setStyle(style) – promjena stila fonta na stil style koji moze biti ’normal’,’bold’, ’italic’, i ’bold italic’
Objekti unosa – omogucuju korisniku unos ili promjenu vrijednosti u graficki element.
• Entry(center, width) – pozicionira tekstualni okvir na tocki center koja imasirinu width
• getAnchor() – vraca tocku na kojoj se objekt nalazi
• getText() – vraca tekst koji se nalazi u objektu
• setText(string) – azurira vrijednost teksta na string
Prikaz slike – paket omogucava minimalnu mogucnost unosa slike (JPEG,GIF,PPM )unutar GraphWin objekta. Neke od specificnih metoda:
• Image(center, filename) – konstruira sliku na tocki center iz datotekefilename
• getAnchor() – vraca tocku na kojoj se nalazi slika
Stvaranje boja – paket omogucuje koristenje standarne imenovane palete boja kao stoje npr. ’red’, ’purple’, ’green’, ’cyan’,. . .ili ’mjesanje’ RGB boja s metodom rgb color(r,g,b) gdje su r,g,b cjelobrojnevrijednosti od 0 . . . 255 i odgovaraju redom crvenoj, zelenoj i plavoj boji.
Uvod u Python
PrimjerNapravite graficki prozor u kojem ce biti prikazan uzorak za igru ’kruzic-krizic’.
1 # create a default 200 x200 window
2 from graphics import *
3 win = GraphWin("Tic -Tac -Toe")
4 # set coordinates to go from (0,0) in the lower left
5 # to (3,3) in the upper right.
6 win.setCoords (0.0, 0.0, 3.0, 3.0)
7 # Draw vertical lines
8 Line(Point(1,0), Point (1 ,3)). draw(win)
9 Line(Point(2,0), Point (2 ,3)). draw(win)
10 # Draw horizontal lines
11 Line(Point(0,1), Point (3 ,1)). draw(win)
12 Line(Point(0,2), Point (3 ,2)). draw(win)
Uvod u Python
PrimjerNapravite graficki prozor u kojem ce biti prikazan uzorak za igru ’kruzic-krizic’.
1 # create a default 200 x200 window
2 from graphics import *
3 win = GraphWin("Tic -Tac -Toe")
4 # set coordinates to go from (0,0) in the lower left
5 # to (3,3) in the upper right.
6 win.setCoords (0.0, 0.0, 3.0, 3.0)
7 # Draw vertical lines
8 Line(Point(1,0), Point (1 ,3)). draw(win)
9 Line(Point(2,0), Point (2 ,3)). draw(win)
10 # Draw horizontal lines
11 Line(Point(0,1), Point (3 ,1)). draw(win)
12 Line(Point(0,2), Point (3 ,2)). draw(win)
Uvod u Python
PrimjerNapravite graficki prozor u kojem cete s 3 klika misa definirati tocke. Napravite objekttrokut uz pomoc tih 3 tocke i definirajte mu boju ispune i boju oruba.
12 # program za crtanje trokuta
3 from graphics import *
45 def crtajTrokut ():
67 win = GraphWin("Trokut")
8 win.setCoords (0.0, 0.0, 10.0, 10.0) # postovi koordinatni sustav
910 message = Text(Point(5, 0.5), "Oznacite 3 tocke:") # tekst komentara
11 message.draw(win)
1213 # ucitaj i nacrtaj 3 tocke
14 p1 = win.getMouse ()
15 p1.draw(win)
16 p2 = win.getMouse ()
17 p2.draw(win)
18 p3 = win.getMouse ()
19 p3.draw(win)
2021 # koristi poligon objekt kako bi nacrtao trokut
22 triangle = Polygon(p1 ,p2,p3)
23 triangle.setFill("red") # postavi ispunu
24 triangle.setOutline("cyan") # postavi obrub
25 triangle.draw(win) # nacrtal trokut
2627 # novi klik je izlaz
28 message.setText("Klikni jos jednom na izlaz ...")
29 win.getMouse ()
303132 crtajTrokut ()
Uvod u Python
PrimjerNapravite graficki prozor u kojem cete s 3 klika misa definirati tocke. Napravite objekttrokut uz pomoc tih 3 tocke i definirajte mu boju ispune i boju oruba.
12 # program za crtanje trokuta
3 from graphics import *
45 def crtajTrokut ():
67 win = GraphWin("Trokut")
8 win.setCoords (0.0, 0.0, 10.0, 10.0) # postovi koordinatni sustav
910 message = Text(Point(5, 0.5), "Oznacite 3 tocke:") # tekst komentara
11 message.draw(win)
1213 # ucitaj i nacrtaj 3 tocke
14 p1 = win.getMouse ()
15 p1.draw(win)
16 p2 = win.getMouse ()
17 p2.draw(win)
18 p3 = win.getMouse ()
19 p3.draw(win)
2021 # koristi poligon objekt kako bi nacrtao trokut
22 triangle = Polygon(p1 ,p2,p3)
23 triangle.setFill("red") # postavi ispunu
24 triangle.setOutline("cyan") # postavi obrub
25 triangle.draw(win) # nacrtal trokut
2627 # novi klik je izlaz
28 message.setText("Klikni jos jednom na izlaz ...")
29 win.getMouse ()
303132 crtajTrokut ()
Uvod u Python
PrimjerNapravite graficki program koji ce unositi temperaturu u Celziusovim stupnjevima, avracati vrijednost u Fahrenheit skali.
1 #graficko sucelje za pretvaranje temperature iz celziusa u Farenheit temp.
23 from graphics import * # ukljucivanje grafickog paketa
4 def main ():
5 win = GraphWin("Celsius Converter", 300, 200)
6 win.setCoords (0.0, 0.0, 3.0, 4.0)
7 # Draw the interface
8 Text(Point(1,3), " Celsius Temperature:").draw(win)
9 Text(Point(1,1), "Fahrenheit Temperature:").draw(win)
10 input = Entry(Point(2,3), 5)
11 input.setText("0.0")
12 input.draw(win)
13 output = Text(Point(2,1),"")
14 output.draw(win)
15 button = Text(Point (1.5 ,2.0) ,"Convert It")
16 button.draw(win)
17 Rectangle(Point (1,1.5), Point (2 ,2.5)). draw(win)
1819 # pricekaj za klik misa
20 win.getMouse ()
21 # pretvori vrijednost
22 celsius = eval(input.getText ())
23 fahrenheit = 9.0/5.0 * celsius + 32
24 # prikazi rezultati i promijeni tekst dugmeta
25 output.setText("%0.1f" % fahrenheit)
26 button.setText("Quit")
27 # cekaj za klik i izlaz
28 win.getMouse ()
29 win.close()
3031 main()
Uvod u Python
PrimjerNapravite graficki program koji ce unositi temperaturu u Celziusovim stupnjevima, avracati vrijednost u Fahrenheit skali.
1 #graficko sucelje za pretvaranje temperature iz celziusa u Farenheit temp.
23 from graphics import * # ukljucivanje grafickog paketa
4 def main ():
5 win = GraphWin("Celsius Converter", 300, 200)
6 win.setCoords (0.0, 0.0, 3.0, 4.0)
7 # Draw the interface
8 Text(Point(1,3), " Celsius Temperature:").draw(win)
9 Text(Point(1,1), "Fahrenheit Temperature:").draw(win)
10 input = Entry(Point(2,3), 5)
11 input.setText("0.0")
12 input.draw(win)
13 output = Text(Point(2,1),"")
14 output.draw(win)
15 button = Text(Point (1.5 ,2.0) ,"Convert It")
16 button.draw(win)
17 Rectangle(Point (1,1.5), Point (2 ,2.5)). draw(win)
1819 # pricekaj za klik misa
20 win.getMouse ()
21 # pretvori vrijednost
22 celsius = eval(input.getText ())
23 fahrenheit = 9.0/5.0 * celsius + 32
24 # prikazi rezultati i promijeni tekst dugmeta
25 output.setText("%0.1f" % fahrenheit)
26 button.setText("Quit")
27 # cekaj za klik i izlaz
28 win.getMouse ()
29 win.close()
3031 main()
Uvod u Python
Zadaci
ZadatakNapisite graficki program u Pythonu koji ce imati input polja za upis parametaraa, b, c kvadratne funkcije f (x) = ax2 + bx + c, a 6= 0 te granice domene l , r i nakonupisa vrijednosti ispisati koordinatni sustav u kojem ce se nalaziti graf funkcije f (x) nadomeni [l , r ].Napomena: Graf mozete diskretno aproksimirati s tockama (xi , f (x)), i = 1, . . . , kgdje je k broj uzoraka i zatim tocke grafa povezati duzinama.
Uvod u Python
Zakljucak
Sto dalje?
• Minicourse: kratki uvod u Python, NIJE CIJELI KURS. Zahtjev na samostalni raduz preporucenu literaturu.
• Pitanja iz Pythona ? Konzultacije u dogovoru sa asistentima.
• Python u primjeni – ostale vjezbe.
Uvod u Python
Zakljucak
Sto dalje?
• Minicourse: kratki uvod u Python, NIJE CIJELI KURS. Zahtjev na samostalni raduz preporucenu literaturu.
• Pitanja iz Pythona ? Konzultacije u dogovoru sa asistentima.
• Python u primjeni – ostale vjezbe.
Uvod u Python
Zakljucak
Sto dalje?
• Minicourse: kratki uvod u Python, NIJE CIJELI KURS. Zahtjev na samostalni raduz preporucenu literaturu.
• Pitanja iz Pythona ? Konzultacije u dogovoru sa asistentima.
• Python u primjeni – ostale vjezbe.
Uvod u Python
Literatura
Mark Pilgrim, Dive Into Python 3, APress, 2009 [besplatno]
James Payne, Beginning Python: Using Python 2.6 and Python 3.1, WileyPublishing, Inc., 2011.
J. M. Zelle, Python: Introduction to Computer Science, 2003.