Vissza a bloghoz

Python 3: Útmutató az adattípusok konvertálásához

Python 3: Útmutató az adattípusok konvertálásához

Bevezetés

Python egy olyan programozási nyelv, amelyet gyakran használnak rendszerintegrációs célokra. Ez a nyelv az úgynevezett ‘adattípusok’ segítségével működik. Ezek az adattípusok segítenek osztályozni vagy meghatározni egy adott adattípust. Ez azt jelenti, hogy egy adott adattípus bizonyos értékekre és műveletekre vonatkozik, amelyeket alkalmazni lehet rá. Minden adattípust más módon programoznak és szerkesztenek. Ez azért van, mert minden adattípusnak más a természete. Például dolgozhat karakterláncokkal (string) vagy egész számokkal (integer).

Ennek az útmutatónak az a célja, hogy segítsen megismerkedni a Python különböző adattípusaival. Ezenkívül részletesen tárgyaljuk az adattípusok egymásba történő konvertálását is. A tananyag végére ismerni fogja az olyan adattípusokat, mint a számok, karakterláncok (stringek), tuple-ök és listák, valamint ezek konvertálását.

Számok konvertálása

Amikor a Pythonban a számokról beszélünk, két lehetőség egyikére utalhatunk. Vagy egész számokkal vagy lebegőpontos számokkal dolgozunk. Előfordulhat, hogy az egyiket át kell konvertálnia a másikba. Könnyen konvertálhat egész számokat lebegőpontos számokká, és lebegőpontos számokat egész számokká.

  • Konverzió: Egész számok lebegőpontos számokká

Először is azt vizsgáljuk meg, hogyan lehet az egész számokat lebegőpontos számokká konvertálni. Ennek eszköze egy float() nevű parancs. Ez a függvény bármely megadott egész számot tizedesjegyekkel rendelkező lebegőpontos számmá konvertál. Mindössze annyit kell tennie, hogy az egész számot a zárójelek közé helyezi. Tegyük fel például, hogy az 57-es egész számot lebegőpontos adattípussá szeretné konvertálni. Így végezheti el a konverziót:

A parancs futtatásának eredményeként az egész szám 57 átváltozik a következő lebegőpontos számmá: 57.0.

Ennek egy másik módja egy változó használata. Az egész számot jelölheti egy változóval, majd kinyomtathatja a lebegőpontos számot a fenti paranccsal. Tegyük fel, hogy deklarálja az f változót, amelynek értéke 57. Így történne a konverzió ebben az esetben:

  • Conversion: Floats to Integers

A lebegőpontos számokat egész számokká is konvertálhatja. Az előző parancshoz hasonlóan ez a konverzió is elvégezhető az int() függvénnyel. Csakúgy, mint legutóbb, mindössze annyit kell tennie, hogy a lebegőpontos számot a függvényt követő zárójelek közé írja.

Példánkban a következő lebegőpontos számot fogjuk konvertálni: 390 egész számmá. A konverzió elvégzéséhez a következő parancsot futtatjuk:

A függvény futtatásának eredményeként a(z) 390 átváltozik a lebegőpontos formájára: 390.8.

Hasonlóképpen, a konverziót változók segítségével is elvégezheti. Nemcsak ezt, hanem egyszerre több konverziót is végrehajthat. Tegyük fel, hogy a(z) b értéke 125.0 és a(z) c értéke 390.8. Így nyomtathatja ki ezeket a lebegőpontos értékeket:

Mint látható, az egész számok sikeresen lebegőpontos számokká alakultak.

Egy fontos dolog, amit érdemes észben tartani a lebegőpontos számról egész számra történő konverzió során, hogy a függvény nem kerekíti fel az értékeket. Ez azt jelenti, hogy a lebegőpontos szám tizedes része egyszerűen eltávolításra kerül. A függvény nem kerekít fel egy olyan értéket, mint a 390.8, 390-re – egyszerűen eltávolítja a 0.8 egységet, hogy egy egész számot kapjon.

  • Konverzió: Osztás útján

Az egész számokat osztással is konvertálhatja lebegőpontos számokká. Az egész számok egymással való elosztása olyan hányadost eredményezhet, amely lebegőpontos szám. Például, ha 5-öt elosztunk 2-vel, a kapott válasz 2.5 lesz, ami egy lebegőpontos szám. Nézze meg:

Ez a Python 3 egyik speciális funkciója. A Python 2-ben egy ilyen osztás elvégzése csak egy egész számot adna eredményül, így: 5 / 2 = 2.

Konverzió karakterláncokkal (stringekkel)

Mielőtt elkezdenénk beszélni arról, hogyan kell végrehajtani a konverziót karakterláncokkal (stringekkel), tudnia kell, mik is valójában a karakterláncok. Ha még nem tudná, a karakterláncok karaktersorozatok. Ez lehet betűk, számok, szimbólumok vagy bármilyen más karakter sorozata. A karakterláncokról a számítógépes adatokkal összefüggésben hallhatott. Ez azért van, mert a számítógépek gyakran használják ezt az adattípust a műveleteik elvégzéséhez.

Ha felhasználó által generált adatokkal dolgozik, akkor gyakran kell majd elvégeznie ezeket a konverziókat. Ezért hasznos tudni, hogyan alakíthatja át a számokat karakterláncokká, és hogyan konvertálhatja a karakterláncokat számokká.

  • Konverzió: Számokból karakterláncok

Használhatja a str() függvényt a számok karakterláncokká alakításához. Csakúgy, mint korábban, a konvertálni kívánt értéket a zárójelek közé kell helyeznie. Ez az érték lehet szám vagy változó is. Kezdésként nézzük meg, hogyan konvertálhat egy egész számot, például a 12 értéket karakterlánc értékké:

Amint láthatja, a kimenet egy karakterlánc értéket mutat. A karakterlánc értéket az idézőjelek jelölik.

Másrészt egész számok helyett változókat is elhelyezhet a függvényben. Itt válik a függvény igazán hasznossá. Tegyük fel például, hogy nyomon szeretné követni és jelenteni szeretné, hány sor kódot ír egy felhasználó egy adott időkeretben. Ahhoz, hogy ezt az információt megmutassa a felhasználónak, ki kell íratnia mind a karakterláncot, mind az egész szám értékeket, így:

Sajnos, ha megpróbálja futtatni a fenti kódot, egy ehhez hasonló hibát fog kapni:

concatenation error

Ez azt jelenti, hogy a lines változót karakterlánc értékké kell konvertálnia a kód futtatásához.

Most, hogy elhelyezte a konverziós függvényt, sikeresen futtathatja a parancsot. A kimenetként valami hasonlót fog látni:

Hasonlóképpen, ha egy egész szám helyett egy lebegőpontos számot (float) szeretne hozzáadni egy karakterlánchoz, ugyanezt kell tennie. Csakúgy, mint korábban, hozzáadhatja az értéket közvetlenül, vagy használhat változót is. Például:

Ha meg szeretne bizonyosodni arról, hogy az érték helyes, összefűzheti egy karakterlánccal így:

Mivel nem kapott hibát, ez azt jelenti, hogy a konverzió sikeres volt.

  • Konverzió: Karakterláncokból számok

Hasonlóképpen, a karakterláncokat számokká is konvertálhatja. Ha a karakterlánc nem tartalmaz tizedesjegyeket, akkor jobban jár, ha egész számmá konvertálja. Egész számmá a int() függvénnyel konvertálhatja.

Továbbra is az előző, egész számok konverziójára vonatkozó példánkat fogjuk használni. Tehát tegyük fel, hogy egy Sammy nevű felhasználó napi szinten szeretné nyomon követni a kódírási folyamatát. Programozóként ezt az információt kreatív módon szeretné bemutatni a felhasználónak. De mivel ezek az értékek karakterláncként vannak tárolva, nem alkalmazhat rájuk néhány alapvető operátort, mint például a – (kivonás). Ezt a következőkben figyelheti meg:

unsupported operand

Amint láthatja, az operátor nem működik karakterlánc értékeken. Ehelyett hibát kap. Ahhoz, hogy dolgozni tudjon az értékekkel, a karakterláncokat egész számokká kell konvertálnia az int() függvénnyel:

Itt a(z) lines_more egy változó. Ez a változó egy egész szám, és megegyezik az eredményül kapott értékkel, ami a mi példánkban 58.

Másrészt a karakterláncokat lebegőpontos számokká (float) alakíthatja a float() függvénnyel, ha tizedesjegyek is vannak. Ebben a példában a Sammy felhasználó által szerzett pontokat fogjuk használni, szemben az általuk írt sorok számával. A pontok tizedesjegyekkel vannak megadva:

Bár a kimenet nem jelez hibát, mégsem helyes. A + operátor vagy összeadás működött ebben az esetben. De ahelyett, hogy összeadta volna a két számot, egyszerűen egymás mellé helyezte a két karakterlánc-értéket.

Ezért kell először ezeket a karakterláncokat lebegőpontos (float) értékekké alakítani a float() függvénnyel:

Ahogy fentebb látható, a két érték összeadódik. Ne feledje: ha egy tizedesjegyeket tartalmazó karakterlánc-értéket próbál meg egész számmá (integer) alakítani, a következő hibát fogja kapni:

cast error

Ezért először a karakterlánc adattípust számokká kell alakítania. Ezután könnyedén elvégezhet más műveleteket, és átalakíthatja a numerikus értéket.

Konverzió tuple-ökké és listákká

A listák és a tuple-ök további olyan adattípusok, amelyeket használhat a Python 3-ban. Mindkettő elemek sorozatából áll. A különbség a kettő között az, hogy míg a lista módosítható, addig a tuple módosíthatatlan. Ezenkívül, míg a lista elemei szögletes zárójelek közé kerülnek [ ], addig a tuple elemei kerek zárójelek közé ( ).

  • Konverzió: Listákból tuple-ök

Először is nézzük meg, hogyan alakíthat át egy listát tuple-lé. Erre a konverzióra akkor lehet szükség, ha módosíthatatlan adattípusra van szüksége. Erre a célra a következő függvényt kell használnia: tuple():

Ahogy látható, a lista elemei most már egy tuple-ben vannak. Ezt az elemeket körülvevő kerek zárójelek mutatják.

A tuple() függvényt egy olyan változóval is használhatja, amely az elemek listájának felel meg:

Gyakorlatilag bármilyen adattípust átalakíthat tuple-lé. Például így alakíthat át egy karakterláncot tuple-lé:

A karakterláncok átalakíthatók tuple-lé, mert iterálhatók. Értelemszerűen a nem iterálható adattípusok nem alakíthatók át tuple-lé. Tegyük fel, hogy néhány egész számot vagy egy lebegőpontos számot szeretne tuple-lé alakítani. Ha futtatná a tuple() függvényt, a következő hibát kapná:

A típushiba azt mutatja, hogy az egész szám nem iterálható. Ezért nem történhet meg az átalakítás. Egy bonyolult módszer az lenne, ha először az egész számot karakterlánccá, majd tuple-lé alakítanánk. Ezt a következő függvénnyel teheti meg: tuple(str(5000)). De javasoljuk az ilyen bonyodalmak elkerülését.

  • Átalakítás: Tuple-ök listává

Ezzel szemben előfordulhat, hogy egy tuple-t listává kell alakítania, ha módosítható adatokra van szüksége. Erre a célra a list() függvényt fogja használni a következőképpen:

A szögletes zárójelek jelenléte azt jelzi, hogy a kapott kimenet egy tuple. Amikor a kódot írja egy tuple listává alakításához a list() használatával, gondoskodnia kell arról, hogy zárójelet tegyen a list() metódushoz, valamint a print() metódushoz is. Ez azonban kissé olvashatatlanná teszi a kódot. Hogy kevésbé legyen bonyolult, eltávolíthat egy zárójelpárt egy változó használatával:

A tuple-ökhöz hasonlóan a karakterláncokat is közvetlenül listákká alakíthatja:

Összegzés

Ez az útmutató segíteni fog, ha az adattípusok konvertálásának módjait keresi Python 3-ban. Részletesen tárgyaltuk a különböző adattípusokat, és azt, hogyan alakíthatók át egymásba a beépített Python függvények segítségével. Ezen átalakítások ismerete sokkal könnyebbé és alaposabbá teszi a programozási élményt.

Ha szeretné tovább felfedezni, mi mindent tehet a Python segítségével, kövesse a többi útmutatónkat:

Kellemes kódolást!

author

Akshay Nagpal

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.