Datové typy Pythonu

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, floata complextří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 + yjkde 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 floatpromě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) 

Zajímavé články...