Uvod
Python je programski jezik koji se često koristi za potrebe integracije sustava. Ovaj jezik koristi nešto što se zove ‘tipovi podataka’. Ovi tipovi podataka pomažu klasificirati ili definirati određenu vrstu podataka. To znači da se pojedini tip podataka odnosi na specifične vrijednosti i operacije koje na njega možete primijeniti. Svaki se tip podataka programira i uređuje na drugačiji način. To je zato što svaki tip podataka ima drugačiju prirodu. Na primjer, možda radite sa stringovima ili cijelim brojevima.
Cilj je ovog vodiča pomoći vam da se upoznate s različitim tipovima podataka u Pythonu. Osim toga, detaljno ćemo raspravljati o tome kako pretvoriti tipove podataka jedne u druge. Do kraja ovog vodiča trebali biste poznavati tipove podataka kao što su brojevi, stringovi, torke i liste te kako ih pretvoriti.
Pretvorba brojeva
Kada govorimo o brojevima u Pythonu, možda mislimo na jednu od dviju opcija. Možda radimo s cijelim brojevima ili brojevima s pomičnim zarezom. Ponekad ćete možda morati pretvoriti jedne u druge. Moguće je jednostavno pretvoriti cijele brojeve u brojeve s pomičnim zarezom i brojeve s pomičnim zarezom u cijele brojeve.
-
Pretvorba: Cijeli brojevi u brojeve s pomičnim zarezom
Prvo ćemo započeti istraživanjem kako možete pretvoriti cijele brojeve u brojeve s pomičnim zarezom. Način da to učinite je pomoću naredbe pod nazivom float(). Ova funkcija će pretvoriti bilo koji zadani cijeli broj u broj s pomičnim zarezom s decimalama. Sve što trebate učiniti je staviti cijeli broj unutar zagrada. Na primjer, recimo da želite pretvoriti cijeli broj 57 u tip podataka float. Evo kako biste to učinili:
|
1 |
float(57) |
Kao rezultat pokretanja ove naredbe, cijeli broj 57 promijenit će se u float 57.0.
Drugi način da to učinite bio bi korištenje varijable. Svoj cijeli broj možete označiti putem varijable i zatim ispisati float pomoću gornje naredbe. Recimo da deklarirate varijablu f da bude jednaka 57. Evo kako bi izgledala pretvorba u ovom slučaju:
|
1 2 3 |
f = 57 print(float(f)) |
|
1 2 3 |
Izlaz 57.0 |
-
Pretvorba: Brojevi s pomičnim zarezom u cijele brojeve
Također je moguće pretvoriti brojeve s pomičnim zarezom u cijele brojeve. Slično prethodnoj naredbi, ova se pretvorba može izvršiti pomoću funkcije int(). Baš kao i prošli put, sve što trebate učiniti je dodati broj s pomičnim zarezom unutar zagrada nakon funkcije.
U našem primjeru, pretvorit ćemo float 390 u cijeli broj. Za pretvorbu bismo pokrenuli sljedeću naredbu:
|
1 |
int(390.8) |
Kao rezultat pokretanja ove funkcije, 390 promijenit će se u svoj float oblik: 390.8.
Isto tako, pretvorbu možete izvesti uz pomoć varijabli. I ne samo to, već možete izvršiti više pretvorbi istovremeno. Pretpostavimo da je b jednak 125.0 a c jednak 390.8. Evo kako biste ispisali ove vrijednosti s pomičnim zarezom:
|
1 2 3 4 5 |
b = 125.0 c = 390.8 print(int(b)) print(int(c)) |
|
1 2 3 4 |
Izlaz 125 390 |
Kao što vidite, cijeli brojevi su se uspješno pretvorili u brojeve s pomičnim zarezom.
Jedna važna stvar koju treba zapamtiti tijekom pretvorbe broja s pomičnim zarezom u cijeli broj jest da funkcija ne zaokružuje vrijednosti. To znači da se decimalni dio broja s pomičnim zarezom jednostavno uklanja. Funkcija neće zaokružiti vrijednost poput 390.8 na 390 - jednostavno bi uklonila 0.8 jedinica kako bi vam dala cijeli broj.
-
Pretvorba: Dijeljenjem
Također je moguće pretvoriti cijele brojeve u brojeve s pomičnim zarezom dijeljenjem. Dijeljenje cijelih brojeva međusobno može vam dati kvocijent koji je broj s pomičnim zarezom. Na primjer, kada dijelite 5 s 2, odgovor koji dobijete bit će 2.5, što je float. Pogledajte:
|
1 2 |
a = 5 / 2 print(a) |
|
1 2 3 |
Izlaz 2.5 |
Ovo je posebna značajka Pythona 3. U Pythonu 2, izvođenje takvog dijeljenja dalo bi vam samo cijeli broj kao odgovor, ovako: 5 / 2 = 2.
Pretvorba sa stringovima
Prije nego što počnemo govoriti o tome kako izvršiti pretvorbu sa stringovima, morate znati što su zapravo nizovi znakova. Ako već ne znate, nizovi znakova su sekvence znakova. To može biti niz slova, brojeva, simbola ili bilo kojih drugih znakova. Možda znate za nizove znakova u vezi s računalnim podacima. To je zato što računala često koriste ovaj tip podataka za obavljanje svojih operacija.
Ako radite s podacima koje generiraju korisnici, morat ćete često provoditi ove pretvorbe. Zato je korisno znati kako promijeniti brojeve u nizove znakova i pretvoriti nizove znakova u brojeve.
-
Pretvorba: Brojevi u nizove znakova
Možete koristiti str() funkciju za pretvaranje brojeva u nizove znakova. Kao i prije, vrijednost koju želite pretvoriti smjestit ćete unutar zagrada. Ova vrijednost može biti ili broj ili varijabla. Za početak, pogledajmo kako biste pretvorili cijeli broj, kao što je 12, u vrijednost niza znakova:
|
1 |
str(12) |
|
1 2 3 |
Izlaz '12' |
Kao što vidite, izlaz prikazuje vrijednost niza znakova. Vrijednost niza znakova označena je navodnicima.
S druge strane, unutar funkcije možete umjesto cijelih brojeva staviti i varijable. Tu funkcija postaje stvarno korisna. Na primjer, zamislite da želite pratiti i izvijestiti koliko linija koda korisnik napiše u određenom vremenskom okviru. Kako biste prikazali ove informacije korisniku, morate ispisati i niz znakova i vrijednosti cijelih brojeva, ovako:
|
1 2 3 4 |
user = "Sammy" lines = 50 print("Čestitamo, " + user + "! Upravo ste napisali " + lines + " linija koda.") |
Nažalost, ako pokušate pokrenuti gornji kod, dobit ćete pogrešku poput ove:

To znači da morate pretvoriti varijablu lines u vrijednost niza znakova kako biste mogli pokrenuti kod.
|
1 2 3 4 |
user = "Sammy" lines = 50 print("Čestitamo, " + user + "! Upravo ste napisali " + str(lines) + " linija koda.") |
Sada kada ste postavili funkciju pretvorbe, moći ćete uspješno pokrenuti naredbu. Kao izlaz vidjet ćete nešto poput sljedećeg:
|
1 2 3 |
Izlaz Čestitamo, Sammy! Upravo ste napisali 50 linija of koda. |
Slično tome, ako želite dodati decimalni broj (float) umjesto cijelog broja u niz znakova, morate učiniti istu stvar. Kao i prije, možete dodati vrijednost izravno ili koristiti varijablu. Na primjer:
|
1 2 3 |
print(str(421.034)) f = 5524.53 print(str(f)) |
|
1 2 3 4 |
Izlaz 421.034 5524.53 |
Ako želite biti sigurni da je vrijednost točna, možete je spojiti s nizom znakova ovako:
|
1 2 |
f = 5524.53 print("Sammy ima " + str(f) + " bodova.") |
|
1 2 3 |
Izlaz Sammy ima 5524.53 bodova. |
Budući da niste primili pogrešku, to znači da je pretvorba bila uspješna.
-
Pretvorba: Nizovi znakova u brojeve
Slično tome, možete pretvoriti i nizove znakova u brojeve. Ako vaš niz znakova nema decimalnih mjesta, onda ga je bolje pretvoriti u cijeli broj. Možete ga pretvoriti u cijele brojeve pomoću int() funkcije.
Nastavit ćemo koristiti naš prethodni primjer iz pretvorbe cijelih brojeva. Dakle, zamislite da korisnik po imenu Sammy želi svakodnevno pratiti svoj napredak u pisanju koda. Kao programer, želite ove informacije predstaviti korisniku na kreativan način. No budući da su te vrijednosti pohranjene kao nizovi znakova, na njih ne možete primijeniti neke osnovne operatore poput – (oduzimanje). To možete uočiti u sljedećem:
|
1 2 3 4 5 6 |
lines_yesterday = "50" lines_today = "108" lines_more = lines_today - lines_yesterday print(lines_more) |

Kao što vidite, operator ne radi na vrijednostima niza znakova. Umjesto toga, primate pogrešku. Da biste mogli raditi s vrijednostima, morate pretvoriti nizove znakova u cijele brojeve pomoću int() funkcije.
|
1 2 3 4 5 6 |
lines_yesterday = "50" lines_today = "108" lines_more = int(lines_today) - int(lines_yesterday) print(lines_more) |
|
1 2 3 |
Izlaz 58 |
Ovdje je lines_more varijabla. Ova varijabla je cijeli broj i jednaka je rezultirajućoj vrijednosti koja je, u našem primjeru, 58.
S druge strane, možete pretvoriti nizove znakova u decimalne brojeve pomoću float() funkcije ako postoje decimalna mjesta. U ovom primjeru koristit ćemo bodove koje korisnik Sammy osvaja, za razliku od broja redaka koje piše. Bodovi se bilježe u decimalnim brojevima:
|
1 2 3 4 5 6 |
total_points = "5524.53" new_points = "45.30" new_total_points = total_points + new_points print(new_total_points) |
|
1 2 3 |
Izlaz 5524.5345.30 |
Iako se izlaz ne prikazuje kao pogreška, on ipak nije točan. Operand + ili zbrajanje je radio u ovom slučaju. No, umjesto zbrajanja dvaju brojeva, on je jednostavno postavio dvije vrijednosti niza znakova jednu pored druge.
Zato te nizove znakova najprije morate pretvoriti u decimalne vrijednosti pomoću float() funkcije:
|
1 2 3 4 5 6 |
total_points = "5524.53" new_points = "45.30" new_total_points = float(total_points) + float(new_points) print(new_total_points) |
|
1 2 3 |
Izlaz 5569.83 |
Kao što možete vidjeti gore, dvije su vrijednosti zbrojene. Zapamtite: ako pokušate pretvoriti vrijednost niza znakova u decimalama u cijeli broj, dobit ćete ovakvu pogrešku:
|
1 2 |
f = "54.23" print(int(f)) |

Stoga najprije morate pretvoriti tip podataka niza znakova u brojeve. Zatim možete s lakoćom izvoditi druge operacije i pretvorbe na numeričkoj vrijednosti.
Pretvorba u torke i popise
Popisi i torke još su neki od tipova podataka koje možete koristiti u Pythonu 3. Oba se sastoje od niza elemenata. Razlika između njih je u tome što je popis promjenjiv, dok je torka nepromjenjiva. Osim toga, dok se elementi popisa stavljaju unutar uglatih zagrada [ ], oni u torki stavljaju se unutar običnih zagrada ( ).
-
Pretvorba: Popisi u torke
Prije svega, istražimo kako možete pretvoriti popis u torku. Možda ćete morati izvršiti ovu pretvorbu ako vam je potreban nepromjenjivi tip podataka. U tu svrhu morat ćete upotrijebiti funkciju tuple():
|
1 |
print(tuple(['pull request', 'open source', 'repository', 'branch'])) |
|
1 2 3 |
Izlaz ('pull request', 'open source', 'repository', 'branch') |
Kao što vidite, stavke popisa sada su u torki. To je prikazano običnim zagradama koje okružuju elemente.
Također možete koristiti tuple() funkciju s varijablom koja je jednaka popisu stavki:
|
1 2 3 |
sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp'] print(tuple(sea_creatures)) |
|
1 2 3 |
Izlaz ('shark', 'cuttlefish', 'squid', 'mantis shrimp') |
Praktično, bilo koji tip podataka možete pretvoriti u torku. Na primjer, evo kako biste pretvorili niz znakova u torku:
|
1 |
print(tuple('Sammy')) |
|
1 2 3 |
Izlaz ('S', 'a', 'm', 'm', 'y') |
Nizovi znakova mogu se pretvoriti u torke jer su ponovljivi. Razumljivo, tipovi podataka koji se ne mogu ponavljati ne mogu se pretvoriti u torke. Recimo da želite pretvoriti neke cijele brojeve ili decimalni broj u torku. Ako biste pokrenuli tuple() funkciju, dobit ćete pogrešku poput ove:
|
1 |
print(tuple(5000)) |
|
1 2 3 |
Izlaz TypeError: 'int' object is not iterable |
TypeError pokazuje da cijeli broj nije ponovljiv (iterable). Zato se pretvorba ne može izvršiti. Kompliciran način bio bi prvo pretvoriti cijeli broj u string, a zatim u torku. To biste mogli učiniti sa sljedećom funkcijom: tuple(str(5000)). Ali preporučujemo izbjegavanje takvih komplikacija.
-
Pretvorba: torke u liste
Nasuprot tome, možda ćete morati pretvoriti torku u listu ako su vam potrebni promjenjivi podaci. U tu svrhu koristit ćete list() funkciju na sljedeći način:
|
1 |
print(list(('plavi koralj', 'jelenji koralj', 'stupasti koralj'))) |
|
1 2 3 |
Izlaz ['plavi koralj', 'jelenji koralj', 'stupasti koralj'] |
Prisutnost uglatih zagrada ukazuje na to da je rezultirajući izlaz torka. Kada pišete kod za pretvaranje torke u listu pomoću list(), morate se pobrinuti da uključite zagrade za list() metodu kao i za print() metodu. Međutim, to čini kod pomalo nečitljivim. Kako biste ga učinili manje kompliciranim, možete ukloniti jedan par zagrada korištenjem varijable:
|
1 2 3 |
koralj = ('plavi koralj', 'jelenji koralj', 'stupasti koralj') list(koralj) |
Slično torkama, također možete pretvoriti stringove izravno u liste:
|
1 |
print(list('shark')) |
|
1 2 3 |
Izlaz ['s', 'h', 'a', 'r', 'k'] |
Zaključak
Ovaj vodič će vam pomoći ako tražite načine za pretvaranje tipova podataka u Pythonu 3. Detaljno smo raspravili o različitim tipovima podataka i kako se oni mogu pretvoriti jedni u druge pomoću ugrađenih Python funkcija. Poznavanje ovih pretvorbi učinit će vaše programersko iskustvo puno lakšim i temeljitijim.
Kako biste dodatno istražili što možete učiniti s Pythonom, pratite naše ostale vodiče:
- Pogledajte kako instalirati Python 3 i postaviti lokalno programsko okruženje na Ubuntu 16.04.
- Pratite nas kako biste naučili kako izdvojiti podatke s Twittera koristeći Python.
- Naučite kako dohvatiti podatke s NASDAQ-a po minuti koristeći Python.
- Također možete pogledati kako iskoristiti CloudSigma Python skriptu za automatizaciju pretvorbe snimke pogona u puni pogon na našoj platformi.
Sretno programiranje!
Komentari
Još nema komentara. Budite prvi.