Općenito, postoje različite vrste podataka koji se koriste. Za računanje koristimo brojeve, za pisanje dopisa tekst. Svaki programski jezik ima neke svoje specifičnosti, pa tako i definiciju tipova podataka. Ovdje ćemo pojasniti jednostavne tipove podataka Python jezik koji će nam biti dovoljni za početak učenja programiranja, a to su:
- brojevi koji se dijele na cjelobrojne i decimalne
- int (integer) – cjelobrojni tip podataka (u matematici ekvivalentan skupu Z), sastoji se od isključivo cijelih brojeva bez obzira na veličinu koji (brojevi mogu imati tisuće znamenaka bez ikakvog problema)
- primjer cijelih brojeva
- 134
- -24555
- 2
- 0
- primjer cijelih brojeva
- float (floating point number – broj sa pomičnim zarezom) ili realni brojevi (skup R) sadrži sve brojeve koje možemo prikazati na brojevnom pravcu. Za razliku od matematike u kompjuteru nije moguće prikazati sve realne brojeve potpuno točno pa se uzimaju aproksimacije (tako će Python zbroj 2 decimalna broja 0.1 + 0.2 pamtiti kao 0.30000000000000004). Kao što vidimo, brojevi su različiti pa bi, kada bi ih uspoređivali (koji je manji ili veći), u programu dovelo do krivog rezultata. Zato je bitno znati razliku između različitih tipova podataka. Preporuka je koristiti cijele brojeve kad god je to moguće.
- U Pythonu su decimalni brojevi precizni na 16 decimala. Decimale se smatraju znamenke kod prikaza u znanstvenom zapisu (recimo 31850.129 će se gledati kao 3.1850129E4 sto je ekvivalentno 3.1850129 * 10000) tako da će i cijeli brojevi koji su u decimalnom tipu podataka ukoliko imaju vise od 16 znamenka bit aproksimirani. Stoga će jako veliki decimalni brojevi sa stotinama znamenaka imati samo prvih 16 znamenaka preciznih.
- Primjer decimalnih brojeva
- 123.34
- -3.2034
- 2.0
- 0.30000000000000004
- Primjer decimalnih brojeva
- int (integer) – cjelobrojni tip podataka (u matematici ekvivalentan skupu Z), sastoji se od isključivo cijelih brojeva bez obzira na veličinu koji (brojevi mogu imati tisuće znamenaka bez ikakvog problema)
- str (string) – niz znakova koji se sastoje od znakova iz Unicode tablice (UTF-16 ima gotovo 1,112,064 različitih znakova – skoro sva pisma iz svih svjetskih jezika). String može biti gotovo neograničene duzine. String se piše između jednostrukih ili dvostrukih navodnih znakova, ali ih se ne smije miješati.
- Primjer strinogva:
- ‘Dobar dan’
- ‘123’
- “A57”
- “Volim algoritme u Pythonu”
- ” (prazan string)
- Primjer strinogva:
- bool (boolean) – logički tip podatka koji može sadržavati samo dvije vrijednosti (True ili False). Uobičajeno je rezultat logičkih operacija (primjerice usporedbe dva broja). Treba voditi pažnju kod pisanja da se vrijednosti pišu s velikim početnim slovom.
- Primjer boolean vrijenosti:
- True
- False.
- Primjer boolean vrijenosti:
Oznake int, str, float, bool su opisi tipova podataka, tj. klase koje će nam u svojstvu funkcija koristiti za pretvorbu podataka.
Pretvorbe tipova podataka
U Pythonu je moguće za potrebe različitih operacija prebacivati podatke iz jednog u drugi tip podatka. Naravno, neke pretvorbe nisu moguće. Evo nekih primjera:
- int(float/string/boolean) – pretvorit će valjani float, string ili bolean u integer. Float se neće zaokružiti, već će se uzeti samo cijeli dio broja. Nećemo moći pretvoriti beskonačan decimalan broj float(‘inf’), kao ni pretvorba nevažećeg stringa (koji u sebi nema samo cjelobrojne znamenke). Kod boolean vrijednosti True će se pretvoriti u broj 1, a False u broj 0.
-
>>> int(5.8) 5 # uzima samo cijeli dio broja >>> int('-4.9') -4 >>> int('321') 321 # pretvorio je string '25' u broj >>> int('101101', 2) # drugi argument je baza pa će se string 101101 promatrati kao binarni broj 45
-
- float(integer/string/boolean) – slično kao i int() za integer, ali će pretvarati podatak u realni (decimalan) tip podataka.
- >>> float(True)
1.0 >>> float('inf') inf
- >>> float(True)
- str(integer/float/boolean) – pretvara druge tipove podataka u string. Ovo nam je posebno bitno kada zelimo spojiti tekst sa brojem.
- >>> str(True)
- ‘True’
- >>> str(2.55)
- “2.55′
- >>> “325” + 2.55
- ERROR
- >>> “325” + str(2.55)
- “3252.55” # zbrajanje kod stringova znači spajanje
- bool(integer/float/string) – pretvara u boolean, svaki string koji je prazan, broj koji je 0, niz koji je prazan, objekt koji je prazan, itd., uglavnom sve prazno ili sta ima vrijednost 0 postaje False, sve ostalo postaje True
- >>> bool(”)
- False
- >>> bool(‘Dobar dan’)
- True
- >>> bool(0.002)
- True # sve različito od nule je True
- bool(0.0)
- False # samo nula je False
Svakako, Python koristi i složenije strukture podataka poput listi (list), setova (set), rječnika (dict), dvostruko “završene” liste (dequeue)… Njih ćemo obrađivati kod složenijih problemskih zadataka te će tamo biti i opisani.