Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Datové typy. Hlavní datové typy 1)Boolean 2)Čísla 3)Řetězce 4)Seznamy 5)N-tice 6)Slovníky 7)Množiny 8)Další.

Podobné prezentace


Prezentace na téma: "Datové typy. Hlavní datové typy 1)Boolean 2)Čísla 3)Řetězce 4)Seznamy 5)N-tice 6)Slovníky 7)Množiny 8)Další."— Transkript prezentace:

1 Datové typy

2 Hlavní datové typy 1)Boolean 2)Čísla 3)Řetězce 4)Seznamy 5)N-tice 6)Slovníky 7)Množiny 8)Další

3 Ad 1) Typ boolean Nabývá buď hodnoty True nebo False. Typ může vzniknout také vyhodnocením výrazu: >>> cislo = 123 >>> cislo < 2 False >>> cislo = 123 >>> cislo > 2 True Všimněme si, že můžeme před a za znaménko vkládat mezery (je to vhodné z důvodu větší přehlednosti zápisu). Pokud mezeru nevložíme, tak se bude kód chovat naprosto stejně.

4 Ad 1) Typ boolean Hodnoty True a False lze v Pythonu sčítat, odčítat, násobit či dělit: >>> True + True 2 >>> False - True >>> False / True 0.0

5 Ad 2) Čísla V pythonu lze využívat celá (int), reálná (float) či komplexní čísla (complex). Pro určení typu můžeme využít funkci type: >>> x = 1 + 3j >>> type(x) >>> y = 3.12364 >>> type(y) >>> z = 1 >>> type(z) >>> f = 1.0 >>> type(f)

6 Ad 2) Čísla – převod typů Můžeme také převádět čísla celá na reálná a naopak: >>> float(155) 155.0 >>> int(3.1444) 3 >>> int(3.6) 3 >>> int(-0.1) 0 int číslo nezaokrouhluje, nýbrž pouze „osekává“

7 Ad 2) Čísla – operace s čísly Je zde samozřejmě možnost sčítání (+), odčítání (-), násobení (*), dělení (/), umocňování (**), určení zbytku po dělení (%) nebo celočíselné dělení(//): >>> 5.6 + 7 12.6 >>> 7 - 5.6 1.4000000000000004 >>> 9 * (-7) -63 >>> 8 / 7 1.1428571428571428 >>> 7 ** 2 49 >>> 7 % 3 1 >>> 7 // 3 2

8 Ad 2) Čísla – operace s čísly Další důležitou funkcí je zaokrouhlování – funkce round(číslo, počet desetinných míst): >>> round(5.2369) 5 >>> round(5.5369) 6 >>> round(5.5369,3) 5.537

9 Ad 2) Čísla – vytváření posloupností Potřebujeme-li rychle vytvořit posloupnost čísel, tak můžeme využít funkci range. range(x) vrací seznam čísel od 0 do x range(x, y) vrací seznam čísel od x do y. range(x, y, z) vrací seznam čísel od x do y v posloupnosti dané argumentem z.

10 Ad 2) Čísla – operace se zlomky V Pythonu lze počítat se zlomky po naimportování modulu fractions. Dochází k automatické úpravě na základní tvar: >>> import fractions >>> fractions.Fraction(10,20) Fraction(1, 2)

11 Ad 2) Čísla – operace se zlomky Se zlomky lze provádět klasické operace: >>> import fractions >>> fractions.Fraction(10,20) * fractions.Fraction(3,5) Fraction(3, 10) >>> fractions.Fraction(10,20) - fractions.Fraction(3,5) Fraction(-1, 10) >>> fractions.Fraction(10,20) + fractions.Fraction(3,5) Fraction(11, 10) >>> fractions.Fraction(10,20) / fractions.Fraction(3,5) Fraction(5, 6)

12 Ad 2) Čísla – modul math V modulu math najdeme mnoho známých funkcí (sin(), cos(), sum(), log(), log10(), sqrt()…). Můžeme také využít předdefinových čísel – pi (Ludolfovo číslo), exp() (Eulerovo číslo) >>> import math >>> math.pi 3.141592653589793 >>> math.exp(1) 2.718281828459045 >>> math.asin(math.pi/8) 0.40356460692486534

13 Ad 2) Čísla – modul numpy Modul numpy slouží pro práci s numerickými daty konkrétně s jedno až n - rozměrnými maticemi Před použitím tohoto modulu je nutné ji naimportovat: >>> import numpy Můžeme též využít zápisu: >>> import numpy as np Výhodou je to, že již nemusíme při práci s tímto modulem neustále vypisovat celý její název, ale stačí nám pouze zkratka np

14 Ad 2) Čísla – modul numpy Můžeme jednoduše vytvářet jak matice, tak vektory: >>> M = numpy.array([[0, -1, 3], [3, 4, 0]]) >>> print(M) [[ 0 -1 3] [ 3 4 0]] >>> v = numpy.array([[0, -1, 3]]) >>> print(v) [[ 0 -1 3]] Všimněme si, že každý řádek se píše zvlášť do hranaté závorky a odděluje se čárkou

15 Ad 2) Čísla – modul numpy Můžeme zjistit počet prvků (size), počet dimenzí (ndim) či rozměr (shape): >>> M = numpy.array([[0, -1, 3], [3, 4, 0]]) >>> M.size 6 >>> M.ndim 2 >>> M.shape (2, 3)

16 Ad 2) Čísla – modul numpy Často potřebujeme například vytvářet nulové matice: >>> nulova = zeros((2,2)) >>> print(nulova) [[ 0. 0.] [ 0. 0.]] Můžeme také místo polí array vytvářet matrix, kde jsou všechny operace prováděny maticově. Dále modul podporuje také například statistické zpracování dat. Celou řadu dalších funkcí můžeme nalézt v Helpu.

17 Ad 2) Čísla – modul numpy Numpy vypadá hodně podobně jako seznamy, o který bude řeč za malou chvíli. Mají ovšem velkou výhodu v tom, že nejsou tolik obecné a podporují matematické funkce jako maticové násobení. Data z Numpy se velice efektivně ukládají v paměti.

18 Ad 2) Čísla – další modul Existuje celá řada modulů, které lze importovat do Pythonu. Uveďme ještě například modul scipy, který umožňuje například analyzovat signály či provádět numerické řešení diferenciálních rovnic i integrálů (viz prezentace – numerika) atd.

19 Ad 3) Řetězce Řetězce mají zkratku str. Řetězce zapisujeme mezi znaky apostrof (') nebo uvozovky ("). V pythonu jsou řetězce reprezentovány ve znakové sadě Unicode. Do řetězce můžeme psát libovolná slova s kombinací čísel a podobně: >>> 'Ahoj' 'Ahoj' >>> "Kolik je hodin?" 'Kolik je hodin?' >>> "Je 5 odpoledne" ' Je 5 odpoledne '

20 Ad 3) Řetězce – escape sekvence Lze vytvářet prázdné znaky, aniž by se cokoli vytisklo. Mějme základní řetězec, se kterým budeme dále pracovat: >>> print("jednicka\dvojka") jednicka\dvojka Pomocí příkazu \t přidáme mezi znaky tabulátor: >>> print("jednicka\tdvojka") jednickadvojka

21 Ad 3) Řetězce – escape sekvence Pomocí příkazu \n přidáme řádek: >>> print("jednicka\ndvojka") jednicka Dvojka Pomocí příkazu \a uděláme zvukový efekt – pípnutí. Hodí se v dlouhých programech a díky signálu budeme vědět, kde se výpočet právě nachází.

22 Ad 3) Řetězce – escape sekvence Další escape sekvence jsou například: \'apostrof \"uvozovky \\zpětné lomítko \$dolar \rpřechod na začátek řádku

23 Ad 3) Řetězce Přidáním uvozovek můžeme vypisovat řetězec na více řádků (čili použijeme tři uvozovky): >>> print('''jednicka... dvojka''') jednicka dvojka

24 Ad 3) Řetězce Můžeme také vkládat nové řetězce do řetězce, a to za použití složených závorek v místě vložení. Novými řetězci mohou být jak čísla (různých formátů), tak texty: >>> print('jednicka {} dvojka'.format('nasleduje')) jednicka nasleduje dvojka nebo: >>> print('jednicka {x} dvojka {y}'.format(x='nasleduje', y=3)) jednicka nasleduje dvojka 3

25 Ad 3) Řetězce Lze také předdefinovat počet desetinných míst vloženého čísla (%.1f), matematický zápis čísla (%.1e) či vložení stringu (%s): Novými řetězci mohou být jak čísla (různých formátů), tak texty: >>> print('jednicka %.1f dvojka %.3e %s'%(1.32653, 36.1545, 'pokus')) jednicka 1.3 dvojka 3.615e+01 pokus Takto zapsaný řetězec je ve starším formátu, který se dnes nahrazuje zápisy pomocí složených závorek: >>> print('jednicka {:.1f} dvojka {:.3e} {:s}'.format(1.32653, 36.1545, 'pokus')) jednicka 1.3 dvojka 3.615e+01 pokus

26 Ad 4) Seznamy Seznamy [list] jsou nejpoužívanější datové typy v Pythonu. Vytvořit seznam lze pomocí hranatých závorek a jednotlivé prvky jsou odděleny čárkou. Seznam je uspořádaná kolekce položek. V seznamu lze kombinovat čísla i řetězce: nakup = [5, 'rohlíků', 1.5, 'kilo jablek', 6, 'lahví moštu'] Nadefinovali jsme seznam se jménem nakup a šesti položkami.

27 Ad 4) Seznamy Nadefinované seznamy jsou vlastně pole s indexováním od nuly (zleva): >>> nakup = [5, 'rohlíků', 1.5, 'kilo jablek', 6, 'lahví moštu'] >>> nakup[5] 'lahví moštu' >>> nakup[0] 5

28 Ad 4) Seznamy Lze také (mnohdy výhodně u velkých polí) využít záporných indexů – jinak řečeno položka úplně vpravo má polohu -1 nakup = [5, 'rohlíků', 1.5, 'kilo jablek', 6, 'lahví moštu'] >>> nakup[-1] 'lahví moštu' >>> nakup[-5] 'rohlíků' >>> nakup[-6] 5

29 Ad 4) Seznamy – tvorba podseznamů Potřebujeme-li vypsat pouze část seznamu (vytvořit podseznam), tak nám k tomu slouží dvojtečka (:). Tato funkce vypisuje položky od prvního čísla do předposledního >>> nakup[0:4] [5, 'rohlíků', 1.5, 'kilo jablek'] >>> nakup [2:4] [1.5, 'kilo jablek'] >>> nakup[-3:-1] ['kilo jablek', 6] >>> nakup[:] [5, 'rohlíků', 1.5, 'kilo jablek', 6, 'lahví moštu']

30 Ad 4) Seznamy – modifikace seznamů Seznamy můžeme také libovolně měnit – přidávat pole nebo je odstraňovat pomocí předdefinovaných funkcí. Můžeme také do seznamu vkládat další seznam, podobně jako u řetězců. V příkladu přidáme a odebereme první položku v seznamu: >>> nakup.insert(0,'přidej na pozici 0') [‚přidej na pozici 0', 5, 'rohlíků', 1.5, 'kilo jablek', 6, 'lahví moštu'] >>> del nakup[0] [ 5, 'rohlíků', 1.5, 'kilo jablek', 6, 'lahví moštu'] Můžeme také pomocí funkce append() přidávat položky na konci seznamu: >>> nakup.append('přidej položku nakonec') [5, 'rohlíků', 1.5, 'kilo jablek', 6, 'lahví moštu', 'přidej položku nakonec']

31 Ad 4) Seznamy – kopírování seznamů Vytvoříme si seznam a: >>> a = [1, 2, 3] >>> a [1, 2, 3] Seznam a ztotožníme se seznamem b: >>> b = a Uděláme-li jakoukoli operaci se seznamem b, tak se nám stejně přepíše i seznam a (což funguje i naopak): >>> b[1]=-100 >>> b [1, -100, 3] >>> a [1, -100, 3]

32 Ad 4) Seznamy – kopírování seznamů Chceme-li se zpětnému přepisování vyhnout, pak musíme použít příkaz copy: >>> a = [1, 2, 3] >>> b = a.copy() >>> b[1]=-100 >>> b [1, -100, 3] >>> a [1, 2, 3] Existuje i složitější hloubkové kopírování, o kterém se zájemci více dozví v helpu (modul copy).

33 Ad 4) Seznamy – vyhledávání v seznamech Pomocí operátoru příslušnosti in lze jednoduše hledat příslušné prvky ve vytvořených seznamech (nebo i v řetězcích): >>> nakup=[5, 'rohlíků', 1.5, 'kilo jablek', 6, 'lahví moštu'] >>> 5 in nakup True >>> 'kilo' in nakup False

34 Ad 4) Seznamy – další funkce Funkce count() určí počet hledaných položek v daném seznamu. Funkce append() přidá jednu položku nakonec seznamu. Funkce index() najde první výskyt v seznamu. Funkce reverse() obrátí položky v seznamu. Funkce sort() setřídí seznam. Více funkcí se nám zobrazí automaticky v samotném Pythonu při zapisování. Což je jedna z výhod.

35 Ad 5) N-tice N-tice (tuple) se tvoří stejně jako seznamy, s tím rozdílem, že se zapisují do kulatých závorek: ntice = (5, 'rohlíků', 1.5, 'kilo jablek', 6, 'lahví moštu') Jsou neměnné, čili jakmile je vytvoříme, už je nikdy nezměníme. Opět se dají vytvářet podentice z entic (pomocí dvojteček).

36 Ad 5) N-tice – proč používat? Jsou rychlejší než seznamy. Učiní Váš kód bezpečnějším. V případě potřeby lze převádět seznamy na n-tice a naopak (funkce tuple() zmrazí seznam a naopak funkce list() rozpustí n-tici.

37 Ad 6) Slovníky Slovník (dictionary), je datová struktura, která se může indexovat jakýmikoliv hodnotami libovolných neměnitelných typů (takže ne seznamem, ale n-ticí ano). Slovník je uvozen složenými závorkami {} a jednotlivé položky se deklarují ve tvaru index : hodnota. K jednotlivým hodnotám se přistupuje přes indexy. Klíče a hodnoty nelze zaměňovat. Slovník není uspořádaná množina, na pořadí hodnot ve slovníku se nemůžete nikdy spolehnout. Klíče slovníku musí být neměnné objekty, takže např. seznam nemůže být klíčem, ale n-tice ano.

38 Ad 6) Slovníky - příklad Existuje celá škála možností jak vytvořit slovníky. Uvedeme si jeden z nich včetně vnořování: >>> slovnik1 = {'1': 'I', '5': 'V', '10': 'X'} >>> slovnik2 = {'den': 'noc', 'světlo': 'tma, šero', 'teplo': 'zima, chlad'} >>> slovnik3 = {'červená': 'red', 'modrá': 'blue', 'černá': 'black'} >>> slovnik = {'cisla': slovnik1, 'antonyma': slovnik2, 'barvy': slovnik3} >>> slovnik['cisla'] {'10': 'X', '5': 'V', '1': 'I'} >>> slovnik['barvy'] {'modrá': 'blue', 'červená': 'red', 'černá': 'black'}

39 Ad 7) Množiny Množiny lze upravovat pomocí nejrůznějších funkcí. Pomocí funkcí update() a add()přidáváme hodnoty do množiny. Pomocí update můžeme přidávat i seznamy a libovolné datové typy. Funkce update() vždy přidá vše jako množinu, ikdyž budeme přidávat seznam, naproti tomu funkcí add() lze přidat pouze množinu: >>> mnozina = {1, 2, 3, 4} >>> mnozina.update({0,6},[7,8]) >>> print(mnozina) {0, 1, 2, 3, 4, 6, 7, 8} >>> mnozina.add('16') >>> mnozina {0, 1, 2, 3, 4, '16', 6, 7, 8} Dále lze mazat jednotlivé prvky množin pomocí funkcí remove() či discard().

40 Ad 7) Množiny Vytvoření množin: mnozina1 = {12} >>> print(mnozina1) {12} >>> mnozina2 = {12, 3} >>> print(mnozina2) {3, 12} >>> mnozina_prazdna = {} >>> print(mnozina_prazdna) {} >>> mnozina_smisena = {121,'text' } >>> print(mnozina_smisena) {121, 'text'}

41 Ad 8) Další Existují i datové typy na úrovni balíčků. Pokud ne potřeba vytvářet vlastní datové typy, tak nám to Python samozřejmě umožňuje.

42


Stáhnout ppt "Datové typy. Hlavní datové typy 1)Boolean 2)Čísla 3)Řetězce 4)Seznamy 5)N-tice 6)Slovníky 7)Množiny 8)Další."

Podobné prezentace


Reklamy Google