Dátové typy v Pythone

V tomto tutoriáli sa dozviete o rôznych dátových typoch, ktoré môžete použiť v Pythone.

Dátové typy v Pythone

Každá hodnota v Pythone má dátový typ. Pretože všetko je objekt v programovaní v Pythone, dátové typy sú vlastne triedy a premenné sú inštanciou (objektom) týchto tried.

V Pythone existujú rôzne dátové typy. Niektoré dôležité typy sú uvedené nižšie.

Čísla Pythonu

Celé čísla, čísla s pohyblivou rádovou čiarkou a komplexné čísla patria do kategórie čísel Pythonu. Sú definované ako int, floata complextriedy v Pythone.

Pomocou tejto type()funkcie môžeme zistiť, do ktorej triedy premenná alebo hodnota patrí. Podobne sa isinstance()funkcia používa na kontrolu, či objekt patrí do konkrétnej triedy.

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

Výkon

5 je typu 2.0 je typu (1 + 2j) je komplexné číslo? Pravdaže

Celé čísla môžu mať ľubovoľnú dĺžku, sú obmedzené iba dostupnou pamäťou.

Číslo s pohyblivou rádovou čiarkou je presné až na 15 desatinných miest. Celé číslo a plávajúce body sú oddelené desatinnými miestami. 1 je celé číslo, 1,0 je číslo s pohyblivou rádovou čiarkou.

Komplexné čísla sa píšu vo forme, x + yjkde x je skutočná časť a y je imaginárna časť. Tu je niekoľko príkladov.

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

Všimnite si, že floatpremenná b bola skrátená.

Zoznam Pythonu

Zoznam je usporiadaná postupnosť položiek. Je to jeden z najpoužívanejších dátových typov v Pythone a je veľmi flexibilný. Všetky položky v zozname nemusia byť rovnakého typu.

Vyhlásenie zoznamu je celkom jednoduché. Položky oddelené čiarkami sú uzavreté v zátvorkách ( ).

 a = (1, 2.2, 'python') 

Pomocou operátora krájania môžeme ( )extrahovať položku alebo rozsah položiek zo zoznamu. Index začína v Pythone od 0.

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

Výkon

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

Zoznamy sú meniteľné, čo znamená, že je možné meniť hodnotu prvkov v zozname.

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

Výkon

 (1, 2, 4) 

Python Tuple

Tuple je usporiadaná postupnosť položiek rovnaká ako zoznam. Rozdiel je iba v tom, že n-tice sú nemenné. Raz vytvorené n-tice nie je možné upraviť.

N-tice sa používajú na ochranu údajov pred zápisom a sú zvyčajne rýchlejšie ako zoznamy, pretože sa nemôžu dynamicky meniť.

Je definovaná v zátvorkách, ()kde sú položky oddelené čiarkami.

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

Na ()extrahovanie položiek môžeme použiť operátor krájania, ale nemôžeme zmeniť jeho hodnotu.

 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 

Výkon

 t (1) = program t (0: 3) = (5, 'program', (1 + 3j)) Traceback (posledný hovor posledný): Súbor "test.py", riadok 11, v t (0) = 10 TypeError: objekt 'n-tica' nepodporuje priradenie položky 

Pythonové struny

Reťazec je postupnosť znakov Unicode. Na vyjadrenie reťazcov môžeme použiť jednoduché úvodzovky alebo dvojité úvodzovky. Viacriadkové reťazce je možné označiť trojitými úvodzovkami, '''príp """.

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

Výkon

 Toto je reťazec Viacriadkový reťazec 

Rovnako ako zoznam a n-tica, operátor krájania ( )môže byť použitý s reťazcami. Struny sú však nemenné.

 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' 

Výkon

 s (4) = os (6:11) = svet Traceback (posledný hovor naposledy): Súbor "", riadok 11, v TypeError: objekt 'str' nepodporuje priradenie položky 

Sada Python

Sada je neusporiadaná zbierka jedinečných predmetov. Sada je definovaná hodnotami oddelenými čiarkami vo vnútri zložených zátvoriek ( ). Položky v súprave nie sú zoradené.

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

Výkon

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

Môžeme vykonávať množinové operácie ako spojenie, križovatka na dvoch množinách. Sady majú jedinečné hodnoty. Eliminujú duplikáty.

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

Výkon

 (1, 2, 3) 

Pretože množinové množiny sú neusporiadané, indexovanie nemá žiadny význam. Operátor krájania ()teda nefunguje.

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

Slovník Python

Slovník je neusporiadaná kolekcia párov kľúč - hodnota.

Spravidla sa používa, keď máme obrovské množstvo údajov. Slovníky sú optimalizované na načítanie údajov. Musíme poznať kľúč na získanie hodnoty.

V Pythone sú slovníky definované v zložených zátvorkách, ()pričom každá položka je vo formulári dvojica key:value. Kľúč a hodnota môžu byť ľubovoľného typu.

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

Na získanie príslušnej hodnoty používame kľúč. Ale nie naopak.

 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)); 

Výkon

 d (1) = hodnota d ('kľúč') = 2 Traceback (posledný hovor naposledy): File "", riadok 9, v KeyError: 2 

Konverzia medzi dátovými typmi

Môžeme konvertovať medzi rôznymi typmi dát pomocou rôznych funkcií konverzie, napríklad typu int(), float(), str(), atď.

 >>> float(5) 5.0 

Prepočet z float na int hodnotu skráti (priblíži k nule).

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

Prepočet na a z reťazca musí obsahovať kompatibilné hodnoty.

 >>> 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' 

Môžeme dokonca previesť jednu postupnosť do druhej.

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

Ak chcete previesť do slovníka, každý prvok musí byť pár:

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

Zaujímavé články...