V tomto kurzu se dozvíte o různých datových typech, které můžete v Pythonu použít.
Datové typy v Pythonu
Každá hodnota v Pythonu má datový typ. Protože vše je objekt v programování v Pythonu, datové typy jsou ve skutečnosti třídy a proměnné jsou instancí (objektem) těchto tříd.
V Pythonu existují různé datové typy. Níže jsou uvedeny některé důležité typy.
Python čísla
Celá čísla, čísla s plovoucí desetinnou čárkou a komplexní čísla spadají do kategorie čísel Pythonu. Jsou definovány jako int
, float
a complex
třídy v Pythonu.
Pomocí této type()
funkce můžeme zjistit, do které třídy proměnná nebo hodnota patří. Podobně se isinstance()
funkce používá ke kontrole, zda objekt patří do konkrétní třídy.
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ýstup
5 je typu 2.0 je typu (1 + 2j) je komplexní číslo? Skutečný
Celá čísla mohou mít libovolnou délku, je omezena pouze dostupnou pamětí.
Číslo s plovoucí desetinnou čárkou je přesné až na 15 desetinných míst. Celé a plovoucí body jsou odděleny desetinnými čárkami. 1 je celé číslo, 1,0 je číslo s plovoucí desetinnou čárkou.
Složitá čísla se zapisují ve tvaru, x + yj
kde x je skutečná část a y je imaginární část. Zde jsou nějaké příklady.
>>> a = 1234567890123456789 >>> a 1234567890123456789 >>> b = 0.1234567890123456789 >>> b 0.12345678901234568 >>> c = 1+2j >>> c (1+2j)
Všimněte si, že float
proměnná b byla zkrácena.
Seznam Pythonu
Seznam je seřazený sled položek. Je to jeden z nejpoužívanějších datových typů v Pythonu a je velmi flexibilní. Všechny položky v seznamu nemusí být stejného typu.
Deklarace seznamu je docela přímočará. Položky oddělené čárkami jsou uzavřeny v závorkách ( )
.
a = (1, 2.2, 'python')
Pomocí operátoru krájení ( )
můžeme extrahovat položku nebo řadu položek ze seznamu. Index začíná v Pythonu 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ýstup
a (2) = 15 a (0: 3) = (5, 10, 15) a (5 :) = (30, 35, 40)
Seznamy jsou proměnlivé, což znamená, že lze změnit hodnotu prvků seznamu.
a = (1, 2, 3) a(2) = 4 print(a)
Výstup
(1, 2, 4)
Python Tuple
Tuple je seřazená posloupnost položek stejná jako seznam. Jediný rozdíl je v tom, že n-tice jsou neměnné. Jakmile jsou n-tice vytvořeny, nelze je upravit.
Tice se používají k ochraně dat proti zápisu a jsou obvykle rychlejší než seznamy, protože se nemohou dynamicky měnit.
Je definován v závorkách, ()
kde jsou položky odděleny čárkami.
t = (5,'program', 1+3j)
()
K extrahování položek můžeme použít operátor krájení, ale nemůžeme změnit 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ýstup
t (1) = program t (0: 3) = (5, 'program', (1 + 3j)) Traceback (poslední hovor poslední): Soubor "test.py", řádek 11, v t (0) = 10 TypeError: Objekt 'n-tice' nepodporuje přiřazení položky
Pythonové řetězce
Řetězec je posloupnost znaků Unicode. Můžeme použít jednoduché uvozovky nebo uvozovky k reprezentaci řetězců. Víceřádkové řetězce lze označit pomocí trojitých uvozovek '''
nebo """
.
s = "This is a string" print(s) s = '''A multiline string''' print(s)
Výstup
Toto je řetězec Víceřádkový řetězec
Stejně jako seznam a n-tice ( )
lze operátor krájení použít s řetězci. Řetězce jsou však neměnné.
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ýstup
s (4) = os (6:11) = svět Traceback (poslední hovor poslední): Soubor "", řádek 11, v TypeError: objekt 'str' nepodporuje přiřazení položky
Sada Python
Sada je neuspořádaná kolekce jedinečných položek. Sada je definována hodnotami oddělenými čárkami uvnitř složených závorek ( )
. Položky v sadě nejsou objednány.
a = (5,2,3,1,4) # printing set variable print("a = ", a) # data type of variable a print(type(a))
Výstup
a = (1, 2, 3, 4, 5)
Můžeme provádět operace množin, jako je sjednocení, průnik na dvou množinách. Sady mají jedinečné hodnoty. Eliminují duplikáty.
a = (1,2,2,3,3,3) print(a)
Výstup
(1, 2, 3)
Protože sada je neuspořádaná kolekce, indexování nemá žádný význam. Operátor krájení ()
tedy 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 v Pythonu
Slovník je neuspořádaná kolekce párů klíč – hodnota.
Obvykle se používá, když máme obrovské množství dat. Slovníky jsou optimalizovány pro načítání dat. Musíme znát klíč k načtení hodnoty.
V Pythonu jsou slovníky definovány v závorkách, ()
přičemž každá položka je ve formuláři dvojicí key:value
. Klíč a hodnota mohou být jakéhokoli typu.
>>> d = (1:'value','key':2) >>> type(d)
K načtení příslušné hodnoty používáme klíč. Ale ne 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ýstup
d (1) = hodnota d ('key') = 2 Traceback (poslední hovor poslední): File "", řádek 9, v KeyError: 2
Konverze mezi datovými typy
Můžeme konvertovat mezi různými typy dat pomocí různých funkcí konverze, například typu int()
, float()
, str()
, atd.
>>> float(5) 5.0
Převod z float na int hodnotu zkrátí (přiblíží se k nule).
>>> int(10.6) 10 >>> int(-10.6) -10
Převod na řetězec a z něj musí obsahovat 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 dokonce převést jednu sekvenci na druhou.
>>> set((1,2,3)) (1, 2, 3) >>> tuple((5,6,7)) (5, 6, 7) >>> list('hello') ('h', 'e', 'l', 'l', 'o')
Chcete-li převést do slovníku, musí být každý prvek dvojicí:
>>> dict(((1,2),(3,4))) (1: 2, 3: 4) >>> dict(((3,26),(4,44))) (3: 26, 4: 44)