14 Tipovi podataka>>> print 'id(a)=',id(a),' id(b)=',id(b) # ne pokazuju isto!id(a)= 3695876 id(b)= 3695888Izraz (engl.expression) je kombinacija vrijednosti (literala), varijabli i operatora. Vrijednost izra£unatogizraza ispisuje se na zaslon ra£unala kori²tenjem naredbe ili funkcije print:>>> print 'gruba aproksimacija pi = ', 22./7gruba aproksimacija pi = 3.14285714286Programske naredbe <strong>Python</strong>a temelje se na pridruºivanju (objekata referencama), upravljanju tijekomprograma (if, else,...), programskim petljama (for, while, ...) i pozivima funkcija i klasa.Identikator je ime objekta, tj. ime varijable, funkcije, klase i sl. Identikatori ne smiju koristitineku od 30 klju£nih rije£i <strong>Python</strong>-a (tablica 2.2), jer su one pridruºene osnovnim <strong>Python</strong> naredbama.Tablica 2.2:<strong>Python</strong> klju£ne rije£iand del for is raiseassert elif from lambda returnbreak else global not tryclass except if or whilecontinue exec import pass withdef finally in print yield2.1 BrojeviUgraženi brojevni objekti u <strong>Python</strong>u podrºavaju cijele brojeve (obi£ne i duga£ke), brojeve s pomi£nimzarezom (realne brojeve) i kompleksne brojeve. Objekti brojeva u <strong>Python</strong>u su nepromjenljivi (immutable)objekti, ²to zna£i da bilo kakva aritmeti£ka operacija na brojevnom objektu, uvijek stvara novibrojevni objekt.>>> a=1234>>> id(a)19431452>>> a=a+0>>> id(a)18681652>>> print a1234Literali cijelih brojeva mogu biti decimalni, oktetni, ili heksadecimalni. Decimalni literal je predstavljennizom znamenki gdje je prva znamenka razli£ita od nule. Oktetni literal je odrežen s po£etnom0 iza koje ide niz oktetnih znamenki (0 do 7). Na sli£an na£in heksadecimalni literal koristi po£etni niz0x nakon £ega slijedi niz heksadecimalnih znamenki (0 do 9 i A do F bilo velikim ili malim slovom).Na, primjer:1, 23, 3493 # Decimalni cijeli brojevi01, 027, 06645 # Oktetni cijeli brojevi0x1, 0x17, 0xda5 # Heksadecimalni cijeli brojeviBilo kojem literalu cijelog broja moºe moºe se dodati slovo 'L' ili 'l' kako bi se ozna£io duga£ki cijelibroj (long integer). Na primjer:
2.2. Nizovi 151L, 23L, 99999333493L # Duga£ki decimalni cijeli brojevi01L, 027L, 01351033136165L # Duga£ki oktetni cijeli brojevi0x1L, 0x17L, 0x17486CBC75L # Duga£ki heksadec. cijeli brojeviRazlika izmežu duga£kog i obi£nog cijelog broja je u tome ²to duga£ki cijeli broj nema predodreženunumeri£ku granicu; moºe biti toliko dug koliko ra£unalo ima memorije. Obi£an cijeli broj uzima nekolikookteta memorije i ima minimalnu i maksimalnu vrijednost koju diktira arhitektura stroja. sys.maxinitje najve¢i dostupni obi£an cijeli broj, dok je sys.maxinit-1 najve¢i negativni.>>> print sys.maxint # za uobicajeni stroj najveci cijeli broj je2147483647>>> 2L**500 # 2 na 500-tu potenciju 3273390607896141870013189696827599152216642046043064...7894832913680961337964046745548832700923259041571508866841275600710092172565458853...93053328527589376LRealni literal (broj s pomi£nim zarezom) predstavljen je nizom decimalnih znamenki koje uklju£ujudecimalni zarez, tj. to£ku (.), exponent (e ili E, te + ili - iza, s jednom ili vi²e znamenki na kraju), ilioboje. Vode¢i znak decimalnog literala ne smije biti e ili E, a moºe biti bilo koja znamenka ili to£ka(.). Na primjer:0., 1.0, .2, 3., 4e0, 5.e0, 6.0e0<strong>Python</strong>ova decimalna vrijednost odgovara uobi£ajena 53 bita preciznosti na modernim ra£unalima.Kompleksni broj sastavljen je od dviju decimalnih vrijednosti, jedne za realni, a druge za imaginarnidio. Mogu¢e je pristupiti dijelovima kompleksnog objekta z kao samo-£itaju¢im "read-only" atributimaz.real i z.imag. Imaginarni literal dobije se dodavanjem znaka 'j' ili 'J' realnom literalu:1j, 1.j, 1.0j, 1e0j, 1.e0j, 1.0e0jZnak J (ili j) na kraju literala ozna£uje kvadratni korijen od -1, ²to je uobi£ajena oznaka imaginarnogdijela u elektrotehni£koj praksi (neke druge discipline koriste znak 'i' u tu svrhu, ali <strong>Python</strong> je izabraoba² znak j).Treba primijetiti da brojevni literali ne uklju£uju predznak: ako postoji + ili - ispred broja, ondasu to posebni operatori.x=input('Upi²ite prvi prirodni broj: ') y=input('Upi²ite drugi prirodni broj: ')print "1) print "2)> 1) 12 : 15 = 0 i ostatak 12 2) 12 : 15 = 0.800000 >2.2 NizoviNiz je spremnik (engl. container) £lanova (engl. items) koji se indeksiraju ili dohva¢aju ne-negativnimcijelim brojevima. <strong>Python</strong> pruºa tri ugražene (engl. built-in) vrste nizova za stringove (obi£ne i Unicode),n-terace, i liste. Knjiºni£ki i ekstenzijski moduli pruºaju druge vrste nizova, a korisnik takožermoºe sam napisati svoje. Nizovi se mogu obraživati na vi²e na£ina.2.2.1 Stringovi - nizovi alfanumeri£kih znakovaUgraženi objekt string je poredan skup znakova koji se koristi za skladi²tenje i predstavljanje podatakana tekstovnoj bazi. Nizovi znakova u <strong>Python</strong>u su nepromjenljivi (engl. immutable), ²to zna£i da senovom operaciijom na nizu znakova, uvijek proizvede novi niz, a ne modicira stari. Objekti stringaimaju ugraženo vi²e metoda.Literalni niz znakova moºe biti pod navodnicima jednostrukim, dvostrukim ili trostrukim navodnicima.String u navodnicima je niz od nula ili vi²e znakova unutar identi£nih znakova navodnika. Naprimjer: