Jazyk Python rozlišuje různé datové typy, dnes se podíváme na ty základní: čísla, řetězce, seznamy, slovníky a n-tice.
16.11.2004 09:00 | Aleš Hakl | přečteno 28900×
Ačkoli jazyk Python rozlišuje různé datové typy, je možné do libovolné proměnné uložit hodnotu libovolného typu. Narozdíl od jayzků jako PHP nebo Perl nedochází tak často k automatickým konverzím a často si potřebnou konverzi musíme vynutit sami explicitně.
V Pythonu můžeme nalézt několik různých číselných typů:
Pokud přímo do programu zapíšeme nějakou hodnotu, jedná se o celé číslo nebo reálné, ostaní typy si musíme sami vynutit:
1 # celé číslo 3.14 # reálné číslo (číslo v plovoucí řádové čárce) 1L # dlouhé delé číslo 1+1j # komplexní číslo 1j # také komplexní číslo
Bližší pozornost si jistě zaslouží typ dlouhých celých čísel, jedná se o celé číslo, jehož hodnota je pouze omezená velikostí dostupné paměti.
Řetězce jsou v Pythonu reprezentovány ve znakové sadě Unicode, proto je
také vhodné v souboru uvádět jeho kódování pomocí sekvence
-*- coding: <kódování> -*-
,
jak již jsme provedli v minulém dílu.
Řetězce zapisujeme mezi znaky '
(apostrof) nebo
"
(uvozovky). Pokud zapíšeme řetězec pouze takto,
bude považován za sekvenci nějakých bytů bez ohledu na unicode nebo
nějaké kódování, stejně jako řetězce například v C.
'Textový řětězec' "Jiný řetězec" 'řetězec v "úvozovkách"' "Můžem' použít i apostrof"
Také můžeme použít trojici apostrofů či uvozovek, uvozující řetězec na více řádek:
'''Tohle je řetězec a zde pokračuje na další řádce''' """Druhá možnost zápisu je tato."""
Pokud řetězec zapíšeme takto, budou jeho obsahem i přechody na nový řádek. Pokud zapíšeme řetězec do jednoduchých uvozovek a před přechod na nový řádek vložíme znak \ (podobně jako v jazyce C), tak řetězec přechody na nový řádek obsahovat nebude.
Pokud před řetězec zapsaný libovolným výše uvedeným způsobem přidáme
písmeno r
, potlačíme zpracování escape sekvencí v dané
hodnotě. Jazyk Python používá stejné escape sekvence jako většina jiných
jazyků, jejich seznam můžeme nalézt například
v seriálu o C.
A stejně jako prefix r
můžeme použít též písmeno
u
, jež označuje řetězec ve znakové sadě Unicode.
Znamená to, že řetězec bude interně reprezentován ve znakové
sadě Unicode, zatímco v souboru je zapsán v kódování určeném
právě v tomto souboru. V řetězcích unicode, jak jsou tyto řetězce
obvykle nazývány, můžeme použít ještě další escape sekvenci
\u
následovanou čtyřmístným kódem znaku Unicode.
Python interně používá pro reprezentaci znaků pouze dva byte,
a tak umí přímo pracovat pouze se znaky s kódem nižším než U+FFFF.
Znaky s vyšším kódem se nám budou v Pythonu jevit jako více znaků.
Python rozeznává tři základní druhy datových struktur:
Všechny tři datové struktury smějí obsahovat libovolné datové typy, kromě slovníku, jehož indexy nesmí být možné měnit.
Všechny tři tyto struktury můžeme uvést přímo v programu jako konstanty s použitím závorek:
() # prázdná n-tice [] # prázdný seznam {} # prázdný slovník ('a', 123, 'c') ['a', 123, 'c'] {'a':'10', 'b':'11', 'c':12}
Příště se podíváme na základní možnosti vstupu a výstupu a proměnné.