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ší.

Slides:



Advertisements
Podobné prezentace
Standardní knihovní funkce pro práci s textovými řetězci
Advertisements

Číselné obory -Zákony, uzavřenost a operace
Pro začátek něco lehčího
VISUAL BASIC Práce s řetězci Použitá literatura: Kvoch: Visual Basic 4.
ŘÍDÍCÍ STRUKTURY - PODMÍNKY
Textový procesor Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je MGR. MILOŠ NYGRÝN.
• Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu „Učíme moderně“ Registrační číslo projektu:
Tabulky v MS ACCESS Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Jiří Novák.
Tabulkové procesory (MS Excel)
Pascal - příklady.
Programování funkcí v Excelu
MATLAB LEKCE 7.
Opakování Co je výsledkem následujícího prográmku? my $a="kol"; my $b="o"; $a.= $b; $b.= $a; print "a = $a, b = $b\n"; Vkládání speciálních znaků? Uvozovací.
VISUAL BASIC Práce se soubory.
Dajbych Václav Pole Další stránku vyvoláte levým kliknutím na Vaší myš, nebo popřípadě rolovacím kolečkem.
Algoritmy I Cvičení č. 5.
Cvičení 2 Proměnné(jednoduché a složené) a konstanty První program Zápis výrazů.
Materiály k přednášce Úvod do programování Ondřej Čepek.
Zlomky a desetinná čísla.
PHP PHP – základy syntaxe (část 1) - 03 Mgr. Josef Nožička IKT PHP
Základní číselné množiny
DalšíPředchozíTÉMA: M. K a d l e c o v á M. K a d l e c o v á.
Jednoduché datové typy
MATLAB LEKCE 1.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_258 Název školyGymnázium, Tachov, Pionýrská 1370 Autor Ing. Roman Bartoš Předmět Informatika.
Objektové programování
Jemný úvod do MATLABu © Leonard Walletzký, ESF MU, 2000.
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu „Učíme moderně“ Registrační číslo projektu:
Datové typy a práce s nimi
TEXTOVÝ EDITOR.
MS Excel Funkce 1. Příklad logické funkce: KDYŽ 2. MATEMATICKÉ FUNKCE 3. LOGICKÉ FUNKCE 4. TEXTOVÉ FUNKCE 5. STATISTICKÉ FUNKCE.
Tabulkové procesory Pelikánová Lucie 2002.
Proměnné v PHP Každý programovací jazyk pracuje s nějakými hodnotami. To, do čeho se tyto hodnoty ukládají, se nazývá proměnné. Každý programovací jazyk.
JavaScript Podmínky, cykly a pole.
Cvičení.
Základní typografická pravidla
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
CSS styly Kaskádové styly (CSS – Cascading Style Sheets) jsou prostředkem, který zajišťuje jednotný vzhled publikovaných stránek. Technologii CSS podporují.
Proměnná typu "pole" Mezi proměnné typu "pole" patří všechny superglobální proměnné. Mezi proměnné typu "pole" patří všechny superglobální proměnné. To.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_250 Název školyGymnázium, Tachov, Pionýrská 1370 Autor Ing. Roman Bartoš Předmět Informatika.
Pole Arrays.
Základy psaní textu Interpunkční znaménka tečka(.), čárka(,)
STRING A UKAZATELE. Co to je řetězec? Řetězec v Javě je samostatný objekt. Je konstantní, co znamená, že jednou vytvořený řetězec nelze změnit. Chceme-li.
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu „Učíme moderně“ Registrační číslo projektu:
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu „Učíme moderně“ Registrační číslo projektu:
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Databázové systémy Přednáška č. 5 Datové typy a Fyzická organizace dat.
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu „Učíme moderně“ Registrační číslo projektu:
ČÍSELNÉ SOUSTAVY.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Řetězce String. Co je to řetězec Jako řetězec označujeme pojmenovanou skupinu libovolných znaků Deklarujeme jej pomocí příkazu Délka řetězce není v tomto.
Datové typy IB111: Datové typy. Data a algoritmizace jaká data potřebuji pro vyřešení problému? jak budu data reprezentovat? jaké operaci s nimi potřebuji.
Maturitní okruh 16: TABULKOVÝ PROCESOR
IB111 Práce se soubory Správa paměti. Práce se soubory v Pythonu Soubor musíme „otevřít“ Poté s ním pracujeme –Čteme a/nebo zapisujeme Nakonec musíme.
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Programovací jazyk C# 2. část. Datové typy C# rozeznává dva druhy datových typů, hodnotové a referenční. Hodnotové datové typy Proměnné hodnotového datového.
Numerika. Modul scipy V problémech (nejen) mechaniky se setkáváme s nutností řešit numericky například integrály, diferenciální rovnice či nejrůznější.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Datové typy a operátory Základní programové.
Tabulkový procesor Práce s listy, adresace buňky, definice řady Autorem materiálu a všech jeho částí, není-li uvedeno jinak, Růžena Hynková. Dostupné z.
ODČÍTÁNÍ DESETINNÝCH ČÍSEL  Při písemném odčítání desetinných čísel musí být desetinné čárky pod sebou!  Musíme odčítat jen stejné řády, tj. desetiny.
Makra v Excelu syntaxe. Zápis nahraného makra SubEnd Sub O klíčová slova Sub a End Sub – začátek a konec makra O komentáře O text za znakem ', až do konce.
Moduly.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Algoritmizace a programování
Definiční obor a obor hodnot
Výukový materiál zpracován v rámci projektu
Algoritmizace a programování
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Vzorce, vkládání vzorce, kopírování vzorce
Transkript prezentace:

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ší

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ě.

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

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 = >>> type(y) >>> z = 1 >>> type(z) >>> f = 1.0 >>> type(f)

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

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í(//): >>> >>> >>> 9 * (-7) -63 >>> 8 / >>> 7 ** 2 49 >>> 7 % 3 1 >>> 7 // 3 2

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

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.

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)

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)

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 >>> math.exp(1) >>> math.asin(math.pi/8)

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

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) [[ ] [ 3 4 0]] >>> v = numpy.array([[0, -1, 3]]) >>> print(v) [[ ]] Všimněme si, že každý řádek se píše zvlášť do hranaté závorky a odděluje se čárkou

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)

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.

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.

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.

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 '

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

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í.

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

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

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

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'%( , , '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( , , 'pokus')) jednicka 1.3 dvojka 3.615e+01 pokus

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.

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

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

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']

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']

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]

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).

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

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.

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).

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.

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.

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'}

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().

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'}

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.