v1 python tutorial

Upload: zeljko-vidovic

Post on 02-Mar-2016

102 views

Category:

Documents


1 download

TRANSCRIPT

  • 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 win322 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.py2 ime=raw_input("Unesite ime:") #ime3 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.py2 ime=raw_input("Unesite ime:") #ime3 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 literal4 hello

    # String literal , niz znakova

    1 [ 63, faks, 8.6 ] # Listina , lista ili popis2 ( 450, 320, 600 ) # n-terac3 { 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 literal2 3 >>> type (512)

    # numericki literal

    4 5 >>> k=2.178

    # varijabla k

    6 >>> type(k)7 8 >>> type ({ a:72, b:1.4 })9

    10 >>> z=2+3j# varijabla z

    11 >>> type(z)12

    U Python 3 verziji postoji tip podataka razlomci:

    1 import fractions2 x=fractions.Fraction (1,3) # 1/33 y=fractions.Fraction (1,2) #1/24 z=x+y # 5/6

    Vrijednosti i funkcije iz modula:

    1 >>>import math2 >>> 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)

    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

    xy, xy Lijevi pomak, desni pomak

    x&y Bitwise I (AND)

    x y Bitwise eksluzivni ILI (XOR)xy Bitwise ILI (OR)

    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 math2 print("Racun za povrsinu trokuta ")3 a = input("a:") #pretpostavka: nejednakost trokuta4 b = input("b:")5 c=input("c:")67 s=(a+b+c)/28 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 math2 print("Racun za povrsinu trokuta ")3 a = input("a:") #pretpostavka: nejednakost trokuta4 b = input("b:")5 c=input("c:")67 s=(a+b+c)/28 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 math2 print("Racun za povrsinu trokuta ")3 a = input("a:") #pretpostavka: nejednakost trokuta4 b = input("b:")5 c=input("c:")67 s=(a+b+c)/28 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 math2 print("Racun za povrsinu trokuta ")3 a = input("a:") #pretpostavka: nejednakost trokuta4 b = input("b:")5 c=input("c:")67 s=(a+b+c)/28 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 math2 print("Racun za povrsinu trokuta ")3 a = input("a:") #pretpostavka: nejednakost trokuta4 b = input("b:")5 c=input("c:")67 s=(a+b+c)/28 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.05 broj=input("Upisite broj")6 n=1 #brojimo elemente78 while (broj !=0):9 broj=input("Upisite broj:")

    10 n+=111 suma+=broj1213 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, 14 while b < n:5 result.append(b)6 a, b = b, a+b78 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.05 broj=input("Upisite broj")6 n=1 #brojimo elemente78 while (broj !=0):9 broj=input("Upisite broj:")

    10 n+=111 suma+=broj1213 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, 14 while b < n:5 result.append(b)6 a, b = b, a+b78 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.05 broj=input("Upisite broj")6 n=1 #brojimo elemente78 while (broj !=0):9 broj=input("Upisite broj:")

    10 n+=111 suma+=broj1213 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, 14 while b < n:5 result.append(b)6 a, b = b, a+b78 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

  • 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=03 suma =0.04 for x in brojevi:5 suma+=x6 n+=17 return suma/n8 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 math23 def Prime(broj):4 for p in range(2,broj):5 if (broj % p == 0):6 return False7 return True

    1 import math23 def prime_sum (* brojevi ):4 suma =0.05 for x in brojevi:6 if Prime(x):7 suma=suma+x8 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 math23 def Prime(broj):4 for p in range(2,broj):5 if (broj % p == 0):6 return False7 return True

    1 import math23 def prime_sum (* brojevi ):4 suma =0.05 for x in brojevi:6 if Prime(x):7 suma=suma+x8 return suma

  • Uvod u Python

    Zadaci

    ZadatakNapisite Python program koji ce aproksimirati broj pi 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 izraz13 izraz24 ...5 def metoda1 ():6 ...7 def metoda2 ():8 ...9 ...

    ilustracija: atributi, funkcije, . . .

    1 >>> class Moja_klasa:2 ... x=233 ...4 >>> objekt1=Moja_klasa ()5 >>> objekt1.x=516 >>> print(objekt1.x)7 518 >>> objekt2=Moja_klasa ()9 >>> print(objekt2.x)

    10 23

    Provjera da li neki objekt instanca neke klase:

    1 >>> objekt3 =52 >>> isinstance(objekt1 ,Moja_klasa)3 True4 >>> isinstance(objekt3 ,Moja_klasa)5 False

  • Uvod u Python

    sintaksa

    Definiranje klase:

    1 class ime_klase [(klase roditelji )]:2 izraz13 izraz24 ...5 def metoda1 ():6 ...7 def metoda2 ():8 ...9 ...

    ilustracija: atributi, funkcije, . . .

    1 >>> class Moja_klasa:2 ... x=233 ...4 >>> objekt1=Moja_klasa ()5 >>> objekt1.x=516 >>> print(objekt1.x)7 518 >>> objekt2=Moja_klasa ()9 >>> print(objekt2.x)

    10 23

    Provjera da li neki objekt instanca neke klase:

    1 >>> objekt3 =52 >>> isinstance(objekt1 ,Moja_klasa)3 True4 >>> 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 Pythonu23 # jednostavni primjer klase i instanciranja45 class Osoba (): #definiranje klase6 "klasa s kojom instanciramo osobe"7 def postaviIme(self ,ime): #metode8 self.__ime=ime #privatni atributi9 def dajIme(self):

    10 return self.__ime11 def pozdrav(self):12 print("Dobrodosli , gdine %s u svijet Pythona!" %self.name)1314 osoba1=Osoba() #instanciranje objekta klase Osoba15 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 Pythonu23 # jednostavni primjer klase i instanciranja45 class Osoba (): #definiranje klase6 "klasa s kojom instanciramo osobe"7 def postaviIme(self ,ime): #metode8 self.__ime=ime #privatni atributi9 def dajIme(self):

    10 return self.__ime11 def pozdrav(self):12 print("Dobrodosli , gdine %s u svijet Pythona!" %self.name)1314 osoba1=Osoba() #instanciranje objekta klase Osoba15 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 stranicama2 from random import *3 import time45 seed()67 class Pravokutnik ():8 def __init__(self ,sirina ,duljina ):9 self.sirina=sirina

    10 self.duljina=duljina1112 def povrsina(self):13 return self.duljina*self.sirina1415 def opseg(self):16 return 2*( self.duljina+self.sirina)171819 # glavni program2021 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 stranicama2 from random import *3 import time45 seed()67 class Pravokutnik ():8 def __init__(self ,sirina ,duljina ):9 self.sirina=sirina

    10 self.duljina=duljina1112 def povrsina(self):13 return self.duljina*self.sirina1415 def opseg(self):16 return 2*( self.duljina+self.sirina)171819 # glavni program2021 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 = 423 def method1(self):4 print("Class A : method1")5 class B:6 varB = 377 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 B13 varC = 3.314 def method2(self):15 print("Klasa B: override :-)")16 def method3(self):17 print("Class C : method3")1819 class D(A):20 varD =10021 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 varA29 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 # Trokut23 import math45 class Trokut:6 "klasa koja definira trokut"7 def __init__(self ,x,y,z):8 self._a=x9 self._b=y

    10 self._c=z1112 def opseg(self):13 return self._a+self._b+self._c1415 def povrsina(self):16 s=(self._a+self._b+self._c)/2.017 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 programa24 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.py2 a = 37 # Varijabla3 def A: # Funkcija4 print("Ja sam u A")5 class K: # Klasa6 def B(self):7 print("Ja sam u K.B")8 b = K() # Tvorba instance

    uvoz u drugu programsku skriptu:

    1 import sys2 # sys.path.append () # radni folder3 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 modula6 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 sustav2 import socket as mreza3 sustav.chdir("..")4 mreza.gethostname ()5 ...6 import math as matematika7 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 lijeva11 return Complex(self.real + drugi.real , self.imag + drugi.imag)12 def __radd__(self ,drugi): # operator s desna13 return Complex.__add__(drugi ,self)14 # other - self15 def __mul__(self ,drugi):16 pass17 def __rmul__(self ,drugi):18 pass19 def __coerce__(self , drugi):20 if isinstance(drugi , Complex ):21 return self ,drugi2223 try: # Provjeriti ako se moze pretvoriti u float24 return self , Complex(float(drugi))25 except ValueError:26 pass2728 # testComplex.py2930 from Complex import Complex31 u=Complex (1,2)32 v=Complex (2,-3)33 x=334 print u+v35 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 klikne

    misem

    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 stanjuPoint metode

    Point(x,y) stvara tocku s danim koordinatama getX(),getY() vraca x , odnosno y koordinatuLine metode

    Line(pt1,pt2) metoda konstruira duzinu od tocaka pt1,pt2 getCenter() vraca poloviste segmenta getP1(), getP2() vraca tocke koje cine krajeve duzineCircle 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 promjeraRectangular 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 objektOval 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 objektPoylgon metode

    Polygon(pt1, pt2, pt3, ...) konstuira poligon ciji vrhovi su tockept1,pt2,...

    getPoints() vraca listu tocaka koje tvore poligonText 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 mozemo

    birati 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 slikaStvaranje 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 window2 from graphics import *3 win = GraphWin("Tic -Tac -Toe")4 # set coordinates to go from (0,0) in the lower left5 # to (3,3) in the upper right.6 win.setCoords (0.0, 0.0, 3.0, 3.0)7 # Draw vertical lines8 Line(Point(1,0), Point (1 ,3)). draw(win)9 Line(Point(2,0), Point (2 ,3)). draw(win)

    10 # Draw horizontal lines11 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 window2 from graphics import *3 win = GraphWin("Tic -Tac -Toe")4 # set coordinates to go from (0,0) in the lower left5 # to (3,3) in the upper right.6 win.setCoords (0.0, 0.0, 3.0, 3.0)7 # Draw vertical lines8 Line(Point(1,0), Point (1 ,3)). draw(win)9 Line(Point(2,0), Point (2 ,3)). draw(win)

    10 # Draw horizontal lines11 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 trokuta3 from graphics import *45 def crtajTrokut ():67 win = GraphWin("Trokut")8 win.setCoords (0.0, 0.0, 10.0, 10.0) # postovi koordinatni sustav9

    10 message = Text(Point(5, 0.5), "Oznacite 3 tocke:") # tekst komentara11 message.draw(win)1213 # ucitaj i nacrtaj 3 tocke14 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 trokut22 triangle = Polygon(p1 ,p2,p3)23 triangle.setFill("red") # postavi ispunu24 triangle.setOutline("cyan") # postavi obrub25 triangle.draw(win) # nacrtal trokut2627 # novi klik je izlaz28 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 trokuta3 from graphics import *45 def crtajTrokut ():67 win = GraphWin("Trokut")8 win.setCoords (0.0, 0.0, 10.0, 10.0) # postovi koordinatni sustav9

    10 message = Text(Point(5, 0.5), "Oznacite 3 tocke:") # tekst komentara11 message.draw(win)1213 # ucitaj i nacrtaj 3 tocke14 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 trokut22 triangle = Polygon(p1 ,p2,p3)23 triangle.setFill("red") # postavi ispunu24 triangle.setOutline("cyan") # postavi obrub25 triangle.draw(win) # nacrtal trokut2627 # novi klik je izlaz28 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 paketa4 def main ():5 win = GraphWin("Celsius Converter", 300, 200)6 win.setCoords (0.0, 0.0, 3.0, 4.0)7 # Draw the interface8 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 misa20 win.getMouse ()21 # pretvori vrijednost22 celsius = eval(input.getText ())23 fahrenheit = 9.0/5.0 * celsius + 3224 # prikazi rezultati i promijeni tekst dugmeta25 output.setText("%0.1f" % fahrenheit)26 button.setText("Quit")27 # cekaj za klik i izlaz28 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 paketa4 def main ():5 win = GraphWin("Celsius Converter", 300, 200)6 win.setCoords (0.0, 0.0, 3.0, 4.0)7 # Draw the interface8 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 misa20 win.getMouse ()21 # pretvori vrijednost22 celsius = eval(input.getText ())23 fahrenheit = 9.0/5.0 * celsius + 3224 # prikazi rezultati i promijeni tekst dugmeta25 output.setText("%0.1f" % fahrenheit)26 button.setText("Quit")27 # cekaj za klik i izlaz28 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.

    Uvod u Python