26 Izrazi, operatori i operacije(engl. exception) je na£in na koji <strong>Python</strong> rje²ava pogre²ke bilo kojeg tipa. Ako se na primjer, repovezivanjemvarijable s aritmeti£kim sadrºajem dogodi dijeljenje s nulom, <strong>Python</strong> ¢e podi¢i iznimkuZeroDivisionError. Pythen dakako, ima ugražene naredbe za dohva¢anje i obrade iznimki.3.2.1 Obi£na pridruºbaNaredba obi£ne pridruºbe u svom najjednostavnijem obliku ima sintaksu:cilj = izrazCilj ili odredi²te (engl.target) je poznat kao lijeve strana pridruºbe, a izraz (engl. expression) jedesna strana. Izraz moºe biti obi£na varijabla ili vi²e varijabli povezanih operatorima, poziv funkcije ilimno²tvo drugih kombinacija s mežusobno povezanim objektima. Kad se naredba pridruºbe izvr²ava,<strong>Python</strong> izra£unava izraz desne strane, te povezuje vrijednost izraza s ciljem na lijevoj strani. Ovopovezivanje ne ovisi o tipu izra£unate vrijednosti desne strane, jer se pridruºba ionako dogaža narazini referenca, adresa objekata, a ne njihova sadrºaja. Cilj moºe biti varijabla/identikator, atribut,indeksirani £lan niza ili kri²ka (engl. slicing) .Detalji povezivanja ovise o vrsti ili tipu cilja:• Identikator je ime varijable: pridruºba na identikator povezuje sadrºaj varijable s tim imenom,upisom adrese pod ime identikatora.• Referenca atributa ima sintaksu obj.name. Pritom je obj identikator koji ozna£ava objekt, aname atributivno ime objekta. Pridruºba na referencu atributa traºi da objekt obj poveºe svojatribut zvan name s izra£unatom ili pozvanom vrijedno²¢u desne strane.• Indeksiranje ima sintaksu obj[expr]. Pritom je obj objekt, a expr je izraz koji indeksira mjestou nizu. Objekt moºe biti bilo kojeg tipa. Pridruºba na indeksiranje traºi da spremnik obj poveºesvoj £lan koji je izabran pomo¢u vrijednosti expr, takožer poznate i kao indeksni klju£ £lana sizra£unatom ili pozvanom vrijedno²¢u desne strane.• Kri²ka (eng. slicing) ima sintaksu obj[start:stop] ili obj[start:stop:korak]. Pritom jeObj objekt, a start, stop i korak su izrazi koji koji indeksiraju dio niza objekata. (Dopu-²teno je izostavljanje £lanova, pa je obj[:stop:] sintaksno ispravna kri²ka, ekvivalentna sobj[None:stop:None]). Pridruºba traºi od niza objekata obj da se poveºu ili odveºu neki odnjegovih £lanova.U jednostavnoj pridruºbi moºe biti vi²e ciljeva i znakova jednakosti (=). Na primjer:a = b = c = 0povezuje varijable a, b, i c s vrijednosti 0. Svaki cilj se povezuje s jednim objektom koji vra¢a izraz,isto kao kad bi se nekoliko jednostavnih naredbi izvr²avale jedna za drugom.Cilj u jednostavnoj pridruºbi moºe imati dvije ili vi²e referenci odvojenih zarezima, proizvoljnoograženih lu£nim ili kutnim zagradama. Na primjer:a, b, c = xOvo zahtijeva da x bude niz od tri £lana, te povezuje a s prvim £lanom, b s drugim, te c s tre¢im.Ova vrsta pridruºbe zove se raspakiravaju¢a pridruºba i pritom izraz s desne strane mora biti niz sto£nim brojem £lanova koliko ima i referenci u cilju, jer se ina£e podigne iznimka. Svaka referenca ucilju je jednozna£no povezana s odgovaraju¢im £lanom u nizu. Raspakiravaju¢a pridruºba takožer moºeizmjenjivati reference. Na primjer:a, b = b, a
3.2. Naredbe pridruºivanja 27Ovaj izraz re-povezuje a da se pridruºi na ono ²to je u b bilo povezano, i obratno.Primjer 3.1 Program ra£una n-ti Fibonnaccijev broj za une²eni prirodni broj n.,% ovdje dolazi izvorni kod Matlab programan= input (" Inesite prirodni broj n:")pret , tren =1 ,1 # asociranje vrijednosti varijablama prethodnik , trenutnifor i in range (0,n -1): #i element niza 0 ,1 ,... ,n -1tren , pret = pret +tren , tren # pridruzivanje vrijednosti varijablama,print "\n %d-ti Fibonnaccijev broj je %d" %(n, tren )% ovdje dolazi rjeÜenje koje program daje4293.2.2 Pro²irena pridruºbaPro²irena pridruºba razlikuje se od obi£ne pridruºbe u tomu, ²to se umjesto znaka jednakosti ( =)izmežu cilja i izraza s desne strane koristi pro²ireni operator, tj. binarni operator nakon kojeg slijedi =.Operatori pro²irene pridruºbe su: + =,− =, ∗ =, / =, // =, % =, ∗∗ =, | =, >>=, = yx = x >> yx