Natrag na blog

Python 3: Vodič za pretvaranje tipova podataka

Python 3: Vodič za pretvaranje tipova podataka

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:

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:

  • 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:

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:

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:

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:

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:

Nažalost, ako pokušate pokrenuti gornji kod, dobit ćete pogrešku poput ove:

concatenation error

To znači da morate pretvoriti varijablu lines u vrijednost niza znakova kako biste mogli pokrenuti kod.

Sada kada ste postavili funkciju pretvorbe, moći ćete uspješno pokrenuti naredbu. Kao izlaz vidjet ćete nešto poput sljedećeg:

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:

Ako želite biti sigurni da je vrijednost točna, možete je spojiti s nizom znakova ovako:

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:

unsupported operand

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.

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:

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:

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:

cast error

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():

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:

Praktično, bilo koji tip podataka možete pretvoriti u torku. Na primjer, evo kako biste pretvorili niz znakova u torku:

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:

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:

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:

Slično torkama, također možete pretvoriti stringove izravno u liste:

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:

Sretno programiranje!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.