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
, float
a complex
triedy 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 + yj
kde 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 float
premenná 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)