Python adattípusok

Ebben az oktatóanyagban megismerheti a Pythonban használható különféle adattípusokat.

Adattípusok a Pythonban

A Python minden értékének van egy adattípusa. Mivel a Python programozásban minden objektum, az adattípusok valójában osztályok, a változók pedig ezeknek az osztályoknak a példányai (objektumai).

A Pythonban különféle adattípusok vannak. Néhány fontos típust az alábbiakban sorolunk fel.

Python számok

Az egész számok, a lebegőpontos és a komplex számok a Python-számok kategóriájába tartoznak. Ezek a meghatározás szerint int, floatés complexosztályok Python.

A type()függvény segítségével megtudhatjuk, hogy egy változó vagy egy érték melyik osztályba tartozik. Hasonlóképpen, a isinstance()függvény segítségével ellenőrizhető, hogy egy objektum egy adott osztályba tartozik-e.

 a = 5 print(a, "is of type", type(a)) a = 2.0 print(a, "is of type", type(a)) a = 1+2j print(a, "is complex number?", isinstance(1+2j,complex)) 

Kimenet

5 a 2.0 típusú a (1 + 2j) típus a komplex szám? Igaz

Az egész számok bármilyen hosszúak lehetnek, csak a rendelkezésre álló memória korlátozza.

A lebegőpontos szám 15 tizedesjegyig pontos. Az egész és a lebegő pontokat tizedespontok választják el. 1 egész szám, 1,0 lebegőpontos szám.

A komplex számokat a következő formában írjuk:, x + yjahol x a valós rész, y pedig a képzeletbeli rész. Íme néhány példa.

 >>> a = 1234567890123456789 >>> a 1234567890123456789 >>> b = 0.1234567890123456789 >>> b 0.12345678901234568 >>> c = 1+2j >>> c (1+2j) 

Figyeljük meg, hogy a floatb változó csonka lett.

Python lista

A lista az elemek rendezett sorrendje. Ez a Python egyik leggyakrabban használt adattípusa, és nagyon rugalmas. A lista összes elemének nem kell azonos típusúnak lennie.

A lista deklarálása elég egyszerű. A vesszővel elválasztott elemek zárójelben vannak ( ).

 a = (1, 2.2, 'python') 

Használhatjuk a szeletelő operátort, ( )hogy kivonjunk egy elemet vagy egy elemtartományt a listából. Az index 0-tól kezdődik a Pythonban.

 a = (5,10,15,20,25,30,35,40) # a(2) = 15 print("a(2) = ", a(2)) # a(0:3) = (5, 10, 15) print("a(0:3) = ", a(0:3)) # a(5:) = (30, 35, 40) print("a(5:) = ", a(5:)) 

Kimenet

 a (2) = 15 a (0: 3) = (5, 10, 15) a (5 :) = (30, 35, 40) 

A listák változtathatóak, vagyis a lista elemeinek értéke megváltoztatható.

 a = (1, 2, 3) a(2) = 4 print(a) 

Kimenet

 (1, 2, 4) 

Python Tuple

A Tuple egy sorba rendezett tételsorozat, amely megegyezik a listával. Az egyetlen különbség az, hogy a sorok változhatatlanok. Az egyszer létrehozott sorok nem módosíthatók.

A sávokat az adatok írásvédelmére használják, és általában gyorsabbak, mint a listák, mivel nem tudnak dinamikusan változni.

Zárójelben van meghatározva, ()ahol az elemeket vesszővel választják el.

 t = (5,'program', 1+3j) 

Használhatjuk a szeletelő operátort ()elemek kinyerésére, de az értékét nem tudjuk megváltoztatni.

 t = (5,'program', 1+3j) # t(1) = 'program' print("t(1) = ", t(1)) # t(0:3) = (5, 'program', (1+3j)) print("t(0:3) = ", t(0:3)) # Generates error # Tuples are immutable t(0) = 10 

Kimenet

 t (1) = program t (0: 3) = (5, 'program', (1 + 3j)) Traceback (legutóbbi hívás utoljára): "test.py" fájl, 11. sor, t (0) = 10 TypeError: A 'tuple' objektum nem támogatja az elem hozzárendelését 

Python karakterláncok

A karakterlánc az Unicode karakterek sorozata. A sztringek ábrázolásához használhatunk egy- vagy dupla idézőjeleket. A többsoros húrokat jelölhetjük hármas idézőjelekkel, '''vagy """.

 s = "This is a string" print(s) s = '''A multiline string''' print(s) 

Kimenet

 Ez egy karakterlánc. Többsoros karakterlánc 

Csakúgy, mint a lista és a páros, a szeletelő operátor ( )is használható húrokkal. A húrok azonban változhatatlanok.

 s = 'Hello world!' # s(4) = 'o' print("s(4) = ", s(4)) # s(6:11) = 'world' print("s(6:11) = ", s(6:11)) # Generates error # Strings are immutable in Python s(5) ='d' 

Kimenet

 s(4) = o s(6:11) = world Traceback (most recent call last): File "", line 11, in TypeError: 'str' object does not support item assignment 

Python Set

Set is an unordered collection of unique items. Set is defined by values separated by comma inside braces ( ). Items in a set are not ordered.

 a = (5,2,3,1,4) # printing set variable print("a = ", a) # data type of variable a print(type(a)) 

Output

 a = (1, 2, 3, 4, 5) 

We can perform set operations like union, intersection on two sets. Sets have unique values. They eliminate duplicates.

 a = (1,2,2,3,3,3) print(a) 

Output

 (1, 2, 3) 

Since, set are unordered collection, indexing has no meaning. Hence, the slicing operator () does not work.

 >>> a = (1,2,3) >>> a(1) Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in TypeError: 'set' object does not support indexing 

Python Dictionary

Dictionary is an unordered collection of key-value pairs.

It is generally used when we have a huge amount of data. Dictionaries are optimized for retrieving data. We must know the key to retrieve the value.

A Pythonban a szótárak zárójelben vannak meghatározva (), minden elem páros a formában key:value. A kulcs és az érték bármilyen típusú lehet.

 >>> d = (1:'value','key':2) >>> type(d) 

A kulcs segítségével lekérjük a megfelelő értéket. De nem fordítva.

 d = (1:'value','key':2) print(type(d)) print("d(1) = ", d(1)); print("d('key') = ", d('key')); # Generates error print("d(2) = ", d(2)); 

Kimenet

 d (1) = érték d ('kulcs') = 2 Traceback (a legutóbbi hívás utoljára): "" fájl, 9. sor a KeyError-ban: 2 

Konvertálás adattípusok között

Mi lehet konvertálni a különböző adattípusok segítségével a különböző típusú átalakítás funkciók, mint a int(), float(), str()stb

 >>> float(5) 5.0 

Az úszóból az int-be történő átalakítás meg fogja csonkítani az értéket (közelebb kerül a nullához).

 >>> int(10.6) 10 >>> int(-10.6) -10 

A karakterláncra történő konvertálásnak kompatibilis értékeket kell tartalmaznia.

 >>> float('2.5') 2.5 >>> str(25) '25' >>> int('1p') Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in ValueError: invalid literal for int() with base 10: '1p' 

Akár az egyik szekvenciát átalakíthatjuk a másikra.

 >>> set((1,2,3)) (1, 2, 3) >>> tuple((5,6,7)) (5, 6, 7) >>> list('hello') ('h', 'e', 'l', 'l', 'o') 

A szótárra konvertáláshoz minden elemnek párnak kell lennie:

 >>> dict(((1,2),(3,4))) (1: 2, 3: 4) >>> dict(((3,26),(4,44))) (3: 26, 4: 44) 

érdekes cikkek...