32 Izrazi, operatori i operacijene i vi²e. Indeks n moºe takožer biti -1, -2,..., sve do -L (isklju£no), ali ne i manji. Negativni nozna£ava iste £lanove u S kao ²to £ini L+n. Drugim rije£ima, S[-1] je posljednji element od S, S[-2] jepretposljednji, itd. Na primjer:x = [1,2,3,4]x[1] # 2x[-1] # 4Kori²tenje indeksa ve¢eg ili jednakog duljini niza L ili manjeg od -L, podiºe (izaziva) iznimku.Pridruºba £lanu niza s nepostoje¢im indeksom ima isti u£inak.3.4.1 Kri²ka (eng. slicing) nizaPodniz S moºe se ozna£iti s pomo¢u kri²ke, kori²tenjem sintakse S[i:j], gdje su i i j cijeli brojevi.S[i:j] je podniz S od i-tog £lana do j-tog £lana, ali ne uklju£uju¢i j-ti £lan. Treba primjetiti kako u<strong>Python</strong>u svi dosezi uklju£uju donju, a isklju£uju gornju granicu. Kri²ka moºe biti prazan podniz ako jej manje od i ili ako je i ve¢e ili jednako L, duljini niza S. Ako je j jednako nuli, i se moºe izostaviti, aako se ide do konca niza (L) onda se i j smije izostaviti. Cijeli niz S moºe se dakle indeksirati sa S[:].Bilo koji ili oba indeksa smiju biti manji od nule. Negativni indeks ozna£uje mjesto u nizu s obziromna kraj niza. Evo nekih primjera:x = [1, 2, 3, 4]x[1:3] # [2, 3] - ne zaboraviti da prvi £lan niza ima indeks jednak 0x[1:] # [2, 3, 4]x[:2] # [1, 2]Kri²ka takožer moºe koristiti pro²irenu sintaksu S[i,j,k], gdje je k - korak indeksa.Liste mogu mijenjati svoje £lanove pridruºbom izraza indeksiranom £lanu. Na primjer:x = [1, 2, 3, 4]x[1] = 42 # x je sada [1, 42, 3, 4]Drugi na£in promjene objekata liste li je kori²tenjem kri²ke od likao cilja (lijeva strana) uz naredbupridruºbe desne strane. Desna strana pritom takožer mora biti lista. Kri²ka s lijeve strane i lista sdesne mogu biti bilo koje duljine, ²to zna£i da pridruºivanje kri²ke moºe dodavati £lanove liste ili ihbrisati. Na primjer:x = [1, 2, 3, 4]x[1:3] = [22, 23, 44] # x je sada [1, 22, 33, 44, 4]x[1:4] = [2, 3] # x se vratio na [1, 2, 3, 4]Evo nekih vaºnih posebnih slu£ajeva:• Koriste¢i praznu listu [ ] kao izraz s desne strane, bri²e se ciljna kri²ka iz liste li s lijeve strane.Drugim rije£ima, li[i:j] = [ ] ima isti u£inak kao i del li[i:j].• Koriste¢i praznu kri²ku liste li kao cilj s lijeve strane pridruºbe ubacuju se £lanovi liste s desnestrane na primjerenu poziciju u li. Drugim rije£ima, li[i:i] = ['a','b'] ubacuje £lanove 'a'i 'b' nakon £lana i u listi li.• Koriste¢i kri²ku koja pokriva cijeli objekt liste li[:], kao cilj s lijeve strane, potpuno se zamjenjujesadrºaj liste li.£lan ili dio (kri²ka) liste moºe se izbrisati naredbom del. Na primjer:x = [1, 2, 3, 4, 5]del x[1] # x je sada [1, 3, 4, 5]del x[1:3] # x je sada [1, 5]
3.5. Naredba Print 333.4.2 Stacionarne operacije na listi i rje£nikuZa liste su denirane stacionarne (in-line) verzije operatora + i *, koji se koriste u pro²irenim naredbamapridruºbe. Pro²irena naredba pridruºbe li +=li_1 ima u£inak dodavanja £lana iz liste li_1 na krajliste li, dok li *= n ima u£inak dodavanja n broja kopija liste li na kraj li.Metoda popitem() moºe se koristiti za destruktivnu iteraciju rje£nika, tj. iterativnim dohva¢anjem£lana bri²e se njegov klju£ i vrijednost u rje£niku. Pritom i item() i popitem() vra¢aju rje£ni£ke £lanovekao parove klju£/vrijednost, ali kori²tenje funkcije popitem() upotrebljava manju koli£inu memorije.U²tede na kori²tenju memorije £ine tu metodu korisnom za petlju po dugom rje£niku.U <strong>Python</strong>u 2.2 i kasnije, izravno iteriranje na rje£niku postiºe se iterkeys() ili iteritems() metodamakoji traºe skromnu koli£inu memorije i ne uni²tavaju rje£nik po kojemu se iteracija obavlja.3.5 Naredba PrintNaredba za ispis ozna£ava se s klju£nom rije£i print nakon koje slijedi niti jedan ili vi²e izraza odvojenihzarezima. Print je prakti£an i jednostavan na£in ispisivanja vrijednosti u tekstovnom obliku. Printispisuje na zaslon ra£unala svaki izraz x kao niz znakova ²to je isto kao kad bi se prethodno pozvalafunkcija str(x) koja bi ekslicitno tip podatka, npr. broja pretvorila u string. Print implicitno izbacujerazmak izmežu izraza, i takožer implicitno uklju£uje novi red (\n) nakon posljednjeg izraza, osim uslu£aju kad iza posljednjeg izraza slijedi zarez. Evo nekih primjera naredbe print:slovo = 'c'print "daj mi ", slovo, "..." # ispisuje: daj mi c ...odgovor = 100print "Odgovor je:", odgovor # ispisuje: Odgovor je:100Odredi²te izlaza naredbe print je datoteka ili objekt sli£an datoteci koji ima vrijednost stdoutatributa u sys modulu. Obi£no je stdout pridruºen zaslonu ra£unala, ali se isto tako moºe pridruºitidrugom objektu ili izlaznoj napravi. Format ispisa moºe se preciznije kontrolirati uporabom operatora% ili drugim tehnikama obradbe nizova znakova.Takožer je mogu¢e koristiti write ili writelines metode datote£nih objekata. U <strong>Python</strong> ver. 3.0nadalje, print naredba postaje funkcija print() s pripadnim argumentima za ispis.Primjer 3.3 Primjena PRINT naredbe s formatiranjem.