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.

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Standardní knihovní funkce pro práci s textovými řetězci
Pomůcka pro tvorbu prezentací závěrečné a diplomové práce
Seznamy Seznam = očíslovaná posloupnost skalárů Zápis seznamu do kulatých závorek: ("máslo")# jednočlenný seznam (1,2,3)# seznam se 3 členy ("jedna",2,3,"osm",100,$pozdrav)
Pascal - příklady.
Programování funkcí v Excelu
HYPERTEXT PREPROCESSOR. JAZYK PHP. Jazyk PHP (Hypertext PreProcessor) je intepretovaný jazyk určený pro web. Je celkem jednoduchý, snadno přenositelný.
Jazyk VHDL Martin Štěpánek
VISUAL BASIC Práce se soubory.
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Dajbych Václav Pole Další stránku vyvoláte levým kliknutím na Vaší myš, nebo popřípadě rolovacím kolečkem.
Příkazy pro práci se soubory ATTRIB DEL COPY REN MOVE XCOPY EDIT FC.
Algoritmy I. Cvičení č. 10.
PHP Práce se soubory v PHP - 13
Algoritmizace a programování Podprogramy v Delphi - 10
Školení počítače Excel
Principy překladačů Běhová podpora Jakub Yaghob. Běhová podpora Statická podpora jazyka Překladač Interface na knihovny Hlavičkové soubory Dynamická podpora.
Materiály k přednášce Úvod do programování Ondřej Čepek.
Generování mezikódu Jakub Yaghob
PHP PHP – základy syntaxe (část 1) - 03 Mgr. Josef Nožička IKT PHP
Práce se soubory. * soubory patří k základním datovým prvkům v počítači * převážná většina programovacích jazyků má podporu určité formy práce se soubory.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B8 Autor Ing. Jiří Kalousek Období vytvoření listopad.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Objektové programování
Sémantická analýza Jakub Yaghob
Práce se soubory Soubory se používají pro ukládání dat pro pozdější použití. Dalším a lepším způsobem jak ukládat data je použití databáze. Soubory se.
Současný svět Projekt č. CZ /3. 1
Počítače a programování 1
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.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Algoritmizace a programování Binární soubory - 14 Mgr. Josef Nožička IKT Algoritmizace a programování
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Objektově orientované programování - cvičení 1
Gymnázium prof. Jana Patočky Jindřišská Praha 1 „Praha & EU: Investujeme do vaší.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Gymnázium prof. Jana Patočky Jindřišská Praha 1 „Praha & EU: Investujeme do vaší.
Algoritmizace a programování Textové soubory - 13 Mgr. Josef Nožička IKT Algoritmizace a programování
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.
Problémy s češtinou České znaky se standardně nepovažují za alfanumerické znaky (\w) Vadí to při třídění vyhodnocování regulárních výrazů Je třeba použít.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B3 Autor Ing. Jiří Kalousek Období vytvoření listopad.
Název školyStřední odborná škola a Gymnázium Staré Město Číslo projektuCZ.1.07/1.5.00/ AutorIng. Ivana Brhelová Název šablonyIII/2.
Základní škola a mateřská škola Bzenec Číslo projektu: CZ.1.07/1.4.00/ Číslo a název šablony klíčové aktivity: III/2: využívání ICT – inovace Vypracoval/a:
INTERNETOVÁ DOMÉNA V této prezentaci se dozvíte něco málo o internetových doménách…
Ukazatele, řetězce Přednáška č. 3. Ukazatele  Ukazatel (pointer) – typ o velikosti 4 bajty (v 32bit. systémech) pro uložení adresy objektu na který ukazuje.
Systém souborů. Množina souborů různých typů – Data – Spustitelné programy – Konfigurační a pomocné informace – I/O zařízení Způsob organizace množiny.
ZÁKLADNÍ POJMY. ZDROJOVÝ TEXT PROGRAMU Tvoří: klíčová slova komentáře identifikátory.
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é.
Balíky Hlavní balík - main - zatím jsme s jiným nepracovali Rozdělují tzv. namespaces = množiny jmen pro proměnné $lemma = "cukr"; znamená $main::lemma.
Podprogramy (subroutines) Pojmenované kousky programu, které –tvoří logicky ucelené části –se v programu opakují Jsou zapsány na jednom místě a v případě.
HYPERTEXT PREPROCESSOR. JAZYK PHP. VYUŽITÍ JAZYKA Programování dynamických internetových stránek a webových aplikací vytvoření šablony webu kniha návštěv.
Algoritmizace a programování Soubory. Oč jde? Vytvoření externího souboru Vytvoření externího souboru Tento soubor může být: Tento soubor může být: Textový.
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Moduly.
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
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é.
Definiční obor a obor hodnot
Úvod do Pythonu – IO operace se soubory.
C# konzole – Podíl dvou čísel, podmínka IF
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Programování v jazyce C++
Řetězce (24) Funkce strchr: deklarována v: string.h
Typ pole (1) Proměnná typu pole představuje kolekci proměnných stejného datového typu, které mohou být označovány společným jménem (identifikátorem) Pole.
Informační a komunikační technologie 5. ročník
Přednáška 9 Triggery.
Transkript prezentace:

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 soubor „zavřít“

Otevírání souboru Příkaz open(soubor, způsob) –Jméno souboru –Způsob otevření Čtení (r) Zápis (w) Čtení i zápis (r+) Přidání dat nakonec (a) Binární režim (b)

Práce se souborem Čtení: read() Čtení jednoho řádku: readline() Čtení pro vytvoření seznamu řádků: readlines() Zápis: write(string) Zjištění aktuální pozice (offsetu) v souboru: tell() Přesun aktuální pozice souboru: seek()

Práce se soubory: příklad

Zkratka přes with Při použití „with“ není třeba soubor explicitně zavírat

IB111 Jak se pracuje s proměnnými a pamětí v jazyce Python

Globální a lokální proměnné

Příklad 1: Rozdíl mezi lokální a globální proměnnou gl_a = 'neco' def priklad1(): lc_a = ‘jineho' print gl_a print lc_a priklad1() print gl_a print lc_a

Příklad 2: Jak nelze nastavit globální proměnnnou… a = ' neco' def priklad2(): a = 'jineho' print 'Uvnitr funkce je hodnota a: ', a priklad2() print 'Mimo funkci je hodnota a:', a

Příklad 3: Jak správně změnit globální proměnnou… a = ' neco' def priklad3(): global a a = 'jineho' print 'Uvnitr funkce je hodnota a: ', a priklad3() print 'Mimo funkci je hodnota a:', a

Příklad 4: Vnořené funkce def priklad4(): vnejsi_a = 'neco' def priklad4_vnitrni(): vnitrni_a = 'jineho' print vnejsi_a print vnitrni_a priklad4_vnitrni() print vnejsi_a print vnitrni_a priklad4()

Příklad 5: Vnořené funkce – jak nezměníte vnější proměnnou… def priklad5(): a = 'neco' def priklad5_vnitrni(): a = 'jineho' print a priklad5_vnitrni() print a priklad5()

Příklad 6: Vnořené funkce def priklad6(): priklad6.a = 'neco' def priklad6_vnitrni(): priklad6.a = 'jineho' print priklad6.a priklad6_vnitrni() print priklad6.a priklad6() #takto vlastně vzniká globální proměnná…

Viditelnost proměnných Proměnné jsou viditelné v rámci bloku Blokem jsou: –Moduly –Funkce –Třídy –Interaktivní příkaz Každé využití jména (proměnné) se odkazuje na nejvnitřnější blok, který jméno obsahuje

Příklad využití globálních proměnných

Přiřazování proměnných

Názvy proměnných Posloupnost písmen, číslic a znaků ‘_’ Nelze použít rezervovaná klíčová slova jazyka: Názvy nesmí obsahovat mezery –v praxi se místo mezer používá podtržítko nebo střídání velikosti písmen, např. dlouhy_nazev_promenne DlouhyNazevPromenne

Přiřazování hodnot proměnným Jazyky C/C++ Jazyk Python

Příklad (intuitivní)

Příklad (méně intuitivní)

Předávání parametrů funkci Způsoby předávání parametrů –Hodnotou (call-by-value) Používáno standardně například v C/C++ a Pascalu –Odkazem (call-by-reference) popř. jménem (call-by-name) – Algol/Cobol Používáno standardně v Perlu Možné použít i v C/C++ a Pascalu –Něco mezitím :-) A to je případ jazyka Python

Předávání parametrů hodnotou Při volání funkce se předávaný výraz vyhodnotí a ve volané funkci pak „žije vlastním životem“ Parametr je tak vlastně lokální proměnná inicializovaná na hodnotu předanou volajícím Funkce tak pracuje nad svou lokální kopií hodnoty Funkce nemůže změnit hodnotu proměnné, předávané jako parametr, tak aby změna byla viditelná ve volající funkci

Předávání parametrů odkazem Při volání se nepředává aktuální hodnota proměnné, ale pouze odkaz (ukazatel, pointer) na proměnnou Jakékoliv změny této proměnné uvnitř volané funkce se projeví i ve funkci volající Nevzniká lokální kopie proměnné, pracuje se rovnou s původní proměnnou

Příklad v jazyce C++

Předávání parametrů v jazyce Python U proměnných, které jsou nezměnitelné, se používá předávání parametrů hodnotou –resp. zdá se, že je použito volání odkazem, jakmile ale dojde ke změně hodnoty, jedná se o volání hodnotou –Řetězce, čísla, n-tice (tuples) V jiných případech se používá předávání odkazem –Funkce může měnit hodnotu parametrů a změna se tyká i volající funkce

Příklad v Pythonu – nezměnitelné typy „Volání hodnotou“

Příklad v Pythonu – měnitelné typy

Správa paměti Automatická správa paměti –Garbage collection Python si sám sleduje využívání paměťových míst –Jakmile se něco přestane používat, paměť je automaticky uvolněna Programátor se o správu paměti nemusí moc starat –Přesto je dobré vědět, jak to funguje Python si sleduje počet odkazů/referencí/využití –Jakmile klesne na nulu, paměť uvolní

Počet odkazů Zvýšení –Vytvoření a = ‘Ahoj’ –Vytvoření aliasub = a –Předání funkcizpracuj(a) –Stane se součástí složeného prvkux = [a, ‘B’, ‘C’] Snížení –Ukončení „scope“ proměnnékonec funkce –Smazání proměnnédel a –Aliasu je přiřazena jiná hodnotab = ‘Nazdar’ –Odstranění ze složeného prvkux.remove(a) –Odstranění složeného prvkudel x

Příklad

Často používané hodnoty Často používané hodnoty Python vytváří automaticky a udržuje je stále v paměti –Čísla mezi -5 a +256 –Jednotlivé znaky –Prázdný řetězec Důvodem je vyšší rychlost/výkon

Kopírování objektů 1.Vytvoření aliasu Přímo odkazujeme na původní proměnnou Příklad: b = a 2.Mělká kopie Vytvoříme novou proměnou, ale odkazujeme původní prvky jako aliasy Příklad: b=a[:] Hluboká kopie Vytváříme kompletní kopii dat Příklad: b=copy.deepcopy(a)

Kopírování objektů – příklad

Kopírování objektů – příklad druhý

Python Tutor

Vizualizace běhu programu v pythonu Krokování Vhodné pro: –Pochopení práce s proměnnými/pamětí –Ladění programu

PythonTutor - ukázka