Späť na blog

Python 3: Sprievodca konverziou dátových typov

Python 3: Sprievodca konverziou dátových typov

Úvod

Python je programovací jazyk, ktorý sa často používa na účely systémovej integrácie. Tento jazyk využíva niečo, čo sa nazýva „dátové typy“. Tieto dátové typy pomáhajú klasifikovať alebo definovať daný typ údajov. To znamená, že konkrétny dátový typ sa vzťahuje na špecifické hodnoty a operácie, ktoré naň môžete aplikovať. Každý dátový typ sa programuje a upravuje iným spôsobom. Je to preto, že každý dátový typ má inú povahu. Môžete napríklad pracovať s reťazcami alebo celými číslami.

Cieľom tejto príručky je pomôcť vám oboznámiť sa s rôznymi dátovými typmi v jazyku Python. Okrem toho budeme podrobne diskutovať o tom, ako konvertovať dátové typy medzi sebou. Na konci tohto návodu by ste mali poznať dátové typy, ako sú čísla, reťazce, n-tice a zoznamy, a vedieť, ako ich konvertovať.

Konverzia čísel

Keď hovoríme o číslach v jazyku Python, môžeme mať na mysli jednu z dvoch možností. Môže ísť buď o celé čísla alebo desatinné čísla. Niekedy môže nastať situácia, keď potrebujete jedno skonvertovať na druhé. Celé čísla môžete jednoducho skonvertovať na čísla s pohyblivou rádovou čiarkou a desatinné čísla na celé čísla.

  • Konverzia: Celé čísla na desatinné čísla

Najprv začneme tým, že preskúmame, ako môžete skonvertovať celé čísla na desatinné čísla. Spôsob, ako to urobiť, je pomocou príkazu s názvom float(). Táto funkcia skonvertuje akékoľvek zadané celé číslo na desatinné číslo. Stačí, ak celé číslo umiestnite do zátvoriek. Povedzme napríklad, že chcete skonvertovať celé číslo 57 na dátový typ float. Tu je návod, ako by ste postupovali pri jeho konverzii:

V dôsledku spustenia tohto príkazu sa celé číslo 57 zmení na desatinné číslo 57.0.

Ďalším spôsobom, ako to urobiť, by bolo použitie premennej. Svoje celé číslo môžete označiť prostredníctvom premennej a potom vytlačiť desatinné číslo pomocou vyššie uvedeného príkazu. Povedzme, že deklarujete premennú f tak, aby sa rovnala 57. Tu je návod, ako by prebehla konverzia v tomto prípade:

  • Konverzia: Desatinné čísla na celé čísla

Desatinné čísla je tiež možné skonvertovať na celé čísla. Podobne ako pri predchádzajúcom príkaze, aj túto konverziu možno vykonať pomocou funkcie int(). Presne ako minule, stačí pridať číslo s pohyblivou rádovou čiarkou do zátvoriek za funkciou.

V našom príklade budeme konvertovať desatinné číslo 390 na celé číslo. Na vykonanie konverzie by sme spustili nasledujúci príkaz:

V dôsledku spustenia tejto funkcie sa 390 zmení na svoju desatinnú formu: 390.8.

Podobne môžete konverziu vykonať pomocou premenných. Okrem toho môžete vykonať viacero konverzií súčasne. Predpokladajme, že b sa rovná 125.0 a c sa rovná 390.8. Tu je návod, ako by ste vytlačili tieto hodnoty s pohyblivou rádovou čiarkou:

Ako vidíte, celé čísla sa úspešne zmenili na desatinné čísla.

Jedna dôležitá vec, ktorú treba mať na pamäti pri konverzii desatinného čísla na celé číslo, je, že funkcia hodnoty nezaokrúhľuje nahor. To znamená, že desatinná časť čísla sa jednoducho odstráni. Funkcia nezaokrúhli hodnotu ako 390.8 na 390 – jednoducho odstráni časť 0.8, aby ste získali celé číslo.

  • Konverzia: Delením

Celé čísla je tiež možné skonvertovať na desatinné čísla delením. Delenie celých čísel navzájom vám môže poskytnúť podiel, ktorý je číslom s pohyblivou rádovou čiarkou. Napríklad pri delení čísla 5 číslom 2 bude výsledok 2.5, čo je desatinné číslo. Pozrite sa:

Toto je špeciálna funkcia verzie Python 3. V jazyku Python 2 by vám takéto delenie poskytlo ako výsledok iba celé číslo, napríklad takto: 5 / 2 = 2.

Konverzia s reťazcami

Predtým, ako začneme hovoriť o tom, ako vykonať konverziu s reťazcami, musíte vedieť, čo vlastne reťazce sú. Ak to ešte neviete, reťazce sú sekvencie znakov. Môže ísť o reťazec písmen, čísel, symbolov alebo akýchkoľvek iných znakov. Reťazce možno poznáte v spojitosti s počítačovými dátami. Je to preto, že počítače tento dátový typ často používajú na vykonávanie svojich operácií.

Ak pracujete s dátami generovanými používateľmi, budete musieť tieto konverzie vykonávať často. Preto je užitočné vedieť, ako zmeniť čísla na reťazce a previesť reťazce na čísla.

  • Konverzia: Čísla na reťazce

Môžete použiť str() funkciu na konverziu čísel na reťazce. Rovnako ako predtým, hodnotu, ktorú chcete previesť, umiestnite do zátvorky. Touto hodnotou môže byť buď číslo, alebo premenná. Na začiatok sa pozrime na to, ako by ste previedli celé číslo, napríklad 12, na reťazcovú hodnotu:

Ako môžete vidieť, výstup zobrazuje reťazcovú hodnotu. Reťazcová hodnota je označená úvodzovkami.

Na druhej strane môžete do funkcie namiesto celých čísel umiestniť aj premenné. V tom je táto funkcia skutočne užitočná. Predstavte si napríklad, že chcete sledovať a reportovať, koľko riadkov kódu používateľ napíše v danom časovom rámci. Ak chcete tieto informácie zobraziť používateľovi, musíte vytlačiť reťazec aj celočíselné hodnoty, napríklad takto:

Bohužiaľ, ak sa pokúsite spustiť vyššie uvedený kód, dostanete takúto chybu:

concatenation error

To znamená, že musíte previesť premennú lines na reťazcovú hodnotu, aby ste mohli kód spustiť.

Teraz, keď ste pridali konverznú funkciu, budete môcť príkaz úspešne spustiť. Ako výstup uvidíte niečo takéto:

Podobne, ak chcete k reťazcu pridať desatinné číslo (float) namiesto celého čísla, musíte urobiť to isté. Rovnako ako predtým, môžete hodnotu pridať priamo alebo použiť premennú. Napríklad:

Ak sa chcete uistiť, že hodnota je správna, môžete ju spojiť s reťazcom takto:

Keďže ste nedostali žiadnu chybu, znamená to, že konverzia bola úspešná.

  • Konverzia: Reťazce na čísla

Podobne môžete previesť aj reťazce na čísla. Ak váš reťazec nemá žiadne desatinné miesta, je lepšie ho previesť na celé číslo. Na celé čísla ho môžete previesť pomocou funkcie int() funkcie.

Budeme pokračovať v našom predchádzajúcom príklade s konverziou celých čísel. Predstavte si teda, že používateľ menom Sammy chce denne sledovať svoj pokrok v písaní kódu. Ako programátor chcete tieto informácie používateľovi prezentovať kreatívnym spôsobom. Keďže sú však tieto hodnoty uložené ako reťazce, nemôžete na ne použiť niektoré základné operátory, ako napríklad – (odčítanie). Môžete to vidieť v nasledujúcom príklade:

unsupported operand

Ako môžete vidieť, operátor na reťazcových hodnotách nefunguje. Namiesto toho dostanete chybu. Aby ste mohli s hodnotami pracovať, musíte reťazce previesť na celé čísla pomocou funkcie int() funkcie:

Tu, lines_more je premenná. Táto premenná je celé číslo a rovná sa výslednej hodnote, ktorá je v našom príklade 58.

Na druhej strane môžete reťazce previesť na desatinné čísla pomocou funkcie float() ak sú prítomné desatinné miesta. V tomto príklade použijeme body, ktoré používateľ Sammy získava, na rozdiel od počtu riadkov, ktoré píše. Body sa zaznamenávajú ako desatinné čísla:

Hoci sa výstup nezobrazuje ako chyba, stále nie je správny. Operand + alebo sčítanie v tomto prípade fungovalo. Ale namiesto sčítania dvoch čísel jednoducho umiestnil dve reťazcové hodnoty vedľa seba.

Preto musíte tieto reťazce najprv previesť na desatinné hodnoty pomocou funkcie float() :

Ako môžete vidieť vyššie, tieto dve hodnoty sa sčítajú. Pamätajte: ak sa pokúsite previesť reťazcovú hodnotu s desatinnými miestami na celé číslo, dostanete takúto chybu:

cast error

Preto musíte najprv previesť dátový typ reťazca na čísla. Potom môžete ľahko vykonávať ďalšie operácie a konverzie s číselnou hodnotou.

Konverzia na n-tice a zoznamy

Zoznamy a n-tice sú ďalšie dátové typy, ktoré môžete použiť v Pythone 3. Oba pozostávajú z postupnosti prvkov. Rozdiel medzi nimi je v tom, že zatiaľ čo zoznam je meniteľný, n-tica je nemeniteľná. Okrem toho, zatiaľ čo prvky zoznamu sú umiestnené v hranatých zátvorkách [ ], prvky n-tice sú umiestnené v okrúhlych zátvorkách ( ).

  • Konverzia: Zoznamy na n-tice

Najprv sa pozrime na to, ako môžete previesť zoznam na n-ticu. Túto konverziu môžete potrebovať, ak vyžadujete nemeniteľný dátový typ. Na tento účel budete musieť použiť funkciu tuple():

Ako môžete vidieť, položky zoznamu sú teraz v n-tici. To dokazujú okrúhle zátvorky, ktoré uzatvárajú prvky.

Môžete tiež použiť funkciu tuple() s premennou, ktorá sa rovná zoznamu položiek:

Na n-ticu môžete pohodlne previesť akýkoľvek dátový typ. Tu je napríklad príklad, ako by ste previedli reťazec na n-ticu:

Reťazce je možné previesť na n-tice, pretože sú iterovateľné. Pochopiteľne, neiterovateľné dátové typy sa na n-tice previesť nedajú. Povedzme, že chcete previesť nejaké celé čísla alebo desatinné číslo na n-ticu. Ak by ste spustili funkciu tuple(), dostanete takúto chybu:

Táto chyba typu (type error) ukazuje, že celé číslo (integer) nie je iterovateľné. Preto nemôže dôjsť k prevodu. Komplikovaným spôsobom by bolo najprv previesť celé číslo na reťazec a potom na n-ticu (tuple). Mohli by ste to urobiť pomocou nasledujúcej funkcie: tuple(str(5000)). Odporúčame však vyhnúť sa takýmto komplikáciám.

  • Prevod: N-tice na zoznamy

Naopak, ak potrebujete meniteľné (mutable) dáta, možno budete musieť previesť n-ticu na zoznam. Na tento účel použijete list() funkciu nasledovne:

Prítomnosť hranatých zátvoriek naznačuje, že výsledný výstup je n-tica. Pri písaní kódu na prevod n-tice na zoznam pomocou list(), musíte sa uistiť, že zahrniete zátvorky pre list() metódu, ako aj pre print() metódu. To však robí kód trochu nečitateľným. Aby ste to zjednodušili, môžete odstrániť jeden pár zátvoriek použitím premennej:

Podobne ako n-tice, aj reťazce môžete previesť priamo na zoznamy:

Záver

Tento návod vám pomôže, ak hľadáte spôsoby, ako previesť dátové typy v jazyku Python 3. Podrobne sme prebrali rôzne dátové typy a to, ako ich možno navzájom previesť pomocou vstavaných funkcií Pythonu. Znalosť týchto prevodov vám pomôže uľahčiť a spresniť vaše programovanie.

Ak chcete ďalej preskúmať, čo všetko môžete s Pythonom robiť, sledujte naše ďalšie návody:

Príjemné programovanie!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

Zatiaľ žiadne komentáre. Buďte prvý.