Úvod do jazyka Python Algoritmizace (podmínky, cykly), čtení a zápis souborů

Podobné dokumenty
Název materiálu: Hydrostatická tlaková síla a hydrostatický tlak

PostGIS Topology. Topologická správa vektorových dat v geodatabázi PostGIS. Martin Landa

Rastrová reprezentace geoprvků model polí Porovnání rastrové a vektorové reprezentace geoprvků Digitální model terénu GIS 1 153GS01 / 153GIS1

Lokalizace QGIS, GRASS

Kinematická metoda výpočtu reakcí staticky určitých soustav

PostGIS Raster. Správa rastrových dat v geodatabázi PostGIS. Martin Landa. 155UZPD Úvod do zpracování prostorových dat, zimní semestr

Princip virtuálních prací (PVP)

Platnost Bernoulli Navierovy hypotézy

Přednáška 08. Obecná trojosá napjatost. Napětí statické rovnice Deformace geometrické rovnice Zobecněný Hookeův zákon Příklad zemní tlak v klidu

GIS 1 155GIS1. Martin Landa Lena Halounová. Katedra geomatiky ČVUT v Praze, Fakulta stavební

Jednoosá tahová zkouška betonářské oceli

Platnost Bernoulli Navierovy hypotézy

Integrální definice vnitřních sil na prutu

Princip virtuálních posunutí (obecný princip rovnováhy)

Princip virtuálních posunutí (obecný princip rovnováhy)

Redukční věta princip

Přednáška 10. Kroucení prutů

IB111 Úvod do programování skrze Python Přednáška 7

SMA2 Přednáška 08. Symetrické konstrukce Symetrické a anti(sy)metrické zatížení Silová metoda a symetrie Deformační metoda a symetrie Příklady

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

SMA2 Přednáška 08. Symetrické konstrukce Symetrické a anti(sy)metrické zatížení Silová metoda a symetrie Deformační metoda a symetrie Příklady

Geografická informace GIS 1 155GIS1. Martin Landa Lena Halounová. Katedra geomatiky ČVUT v Praze, Fakulta stavební 1/23

Přednáška 08. Obecná trojosá napjatost

Jednoosá tahová zkouška betonářské oceli

Vybrané metody řešení soustavy rovnic. Podmínky rovnováhy či ekvivalence vedou často na soustavu rovnic, např.

Přednáška 09. Smyk za ohybu

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Přednáška 10. Kroucení prutů

Přednáška 10. Kroucení prutů

DNSSEC. Adam Tkac, Red Hat, Inc. 23. dubna 2009

Vícerozměrné úlohy pružnosti

Složené soustavy v rovině, stupně volnosti

Tvorba modelu polí Rastrová reprezentace geoprvků Porovnání rastrové a vektorové reprezentace geoprvků Digitální model terénu GIS 1 155GIS1

Basic256 - úvod do programování Příklady. ing. petr polách

SMA2 Přednáška 09 Desky

VISUAL BASIC. Práce se soubory

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Organizace výuky. Přednášející: Doc. Ing. Vít Šmilauer, Ph.D., B312 Konzultační hodiny St (po domluvě i jindy)

Soubory. Hung Hoang Dieu. Department of Mathematics Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 7

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

NPRG030 Programování I, 2010/11

NPRG030 Programování I, 2016/17 1 / :58:13

Stupně volnosti a vazby hmotných objektů

Funkce, podmíněný příkaz if-else, příkaz cyklu for

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

Kámen-nůžky-papír. Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické

Vícerozměrné úlohy pružnosti

Algoritmy a datové struktury

Rovnoměrně ohýbaný prut

Kámen-nůžky-papír. Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické

3. Řízení běhu programu

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

ČVUT FIT: BI-SKJ: Perl

Organizace výuky. Přednášející: Doc. Ing. Vít Šmilauer, Ph.D., B312 Konzultační hodiny St (po domluvě i jindy)

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové soubory

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Přednáška 01 Úvod + Jednoosá napjatost

Programování v Pythonu

Druhy souborů. textové. binární. nestrukturované txt strukturované - ini, xml, csv. veřejné bmp, jpg, wav proprietární docx, cdr, psd

Stavební mechanika 1 - K132SM1 Structural mechanics

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Přednáška 01 PRPE + PPA Organizace výuky

Rekapitulace princip virtuálních sil pro tah/tlak

METRA BLANSKO a.s. LLRP PŘEVODNÍK RFI21.1. KOMPAKTNÍ UHF RFID ČTEČKA EU MHz US MHz.

Programování v jazyce JavaScript

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

Chyby a výjimky. Chyba. Odkud se chyby berou? Kdo chyby opravuje? Co můžete dělat jako programátor? Dvě hlavní metody práce s chybami.

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL


Úvod do programování 8. hodina

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Textové soubory

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Úvod Základní pojmy Úvod do GIS GIS 1 155GIS1. Martin Landa Lena Halounová. Katedra geomatiky ČVUT v Praze, Fakulta stavební 1/19

Sekvenční a podmíněné provádění

Algoritmizace a programování

Jazyk C# a platforma.net

Algoritmizace prostorových úloh

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Přednáška 05. Vybočení ideálně přímého prutu Vybočení prutu s počáteční deformací Okrajové podmínky a staticky neurčité případy Příklady

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Skripty - úvod. Linux - skripty 2

Úvod do programovacích jazyků (Java)

DO NOT PRINT THIS PAGE

18. února 2015, Brno Připravil: David Procházka. Programovací jazyk C++

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

Poslední aktualizace: 14. října 2011

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

Úvod do programovacích jazyků (Java)

6 Příkazy řízení toku

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Algoritmizace a programování

Algoritmizace prostorových úloh

Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.

Řídicí struktury. alg3 1

Programování v Pythonu

Transkript:

Přednáška 2 Algoritmizace (podmínky, cykly), čtení a zápis souborů 155GIT1 Informatika 1, letní semestr 2020-2021 Martin Landa martin.landa@fsv.cvut.cz Fakulta stavební ČVUT v Praze Katedra geomatiky http://geo.fsv.cvut.cz/gwiki/155git1 1/18

Copyright 2019-2021 Martin Landa, Ondřej Pešek Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation Licence, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. 2/18

Obsah přednášky 1 2 3 3/18

Příkaz if / elif / else [ In ] prvocisla = [2, 3, 5, 7, 11] [ In ] if len( prvocisla) > 3: [ In ] prvocisla = prvocisla [:3] [Out] [2, 3, 5] [ In ] if len( prvocisla) > 3: [ In ] prvocisla = prvocisla [:3] [In ] else: [ In ] prvocisla. append(7) [Out] [2, 3, 5, 7] [ In ] if len( prvocisla) == 0: [ In ] prvocisla. append(0) [ In ] elif len( prvocisla) > 1: [In ] prvocisla.pop() [In ] else: [ In ] prvocisla = [] [Out] [2, 3, 5] [Out]? 4/18

Vyhodnocení podmínky [ In ] promenna = True [ In ] if promenna: [In ] print( pravda ) [In ] else: [ In ] print( nepravda ) [ Out] pravda [ In ] promenna = 1 [ Out] pravda [ In ] promenna = 0 [ Out] nepravda [In ] promenna = [ Out] nepravda [ In ] promenna = [0, 1, 2] [ Out] pravda [In ] promenna = [] [Out]? 5/18

Negace podmínky (not) [ In ] promenna = True [ In ] if not promenna: [ In ] print( nepravda ) [In ] else: [In ] print( pravda ) [ Out] nepravda [ In ] promenna = 0 [ In ] if not promenna: [ In ] print( nepravda ) [In ] else: [In ] print( pravda ) [Out]? 6/18

Příkaz if a NoneType [ In ] if promenna: [In ] print( pravda ) [ In ] elif promenna is None: [In ] print( nic ) [In ] else: [ In ] print( nepravda ) [ In ] promenna = 10 [ Out] pravda [ In ] promenna = 0 [ Out] nepravda [ In ] promenna = None [Out] nic 7/18

All / Any [In ] all([true, True, True]) [Out] True [In ] all([true, False, True]) [Out] False [In ] any([true, False, True]) [Out] True [In ] all([0, 1, 2]) [Out] False [In ] any([0, 1, 2]) [Out] True [In ] all([ a, ]) [Out] False [In ] any([ a, ]) [Out] True 8/18

Obsah přednášky 1 2 3 9/18

Cyklus for [ In ] prvocisla = [2, 3, 5, 7, 11] [ In ] # prochazeni pomoci indexu [ In ] for i in range( len( prvocisla)): [ In ] print( prvocisla[i]) [ In ] # prochazeni prvku [ In ] for pc in prvocisla: [ In ] print( pc) [Out] 2 [Out] 3 [Out] 5 [Out] 7 [Out] 11 10/18

Cyklus while [ In ] prvocisla = [2, 3, 5, 7, 11] [ In ] while len( prvocisla) > 3: [In ] prvocisla.pop() [Out] [2, 3, 5] Nekonečný cyklus [ In ] prvocisla = [2, 3, 5, 7, 11] [ In ] while True: [In ] prvocisla.pop() [Out]? 11/18

Příkazy break, continue [ In ] prvocisla = [2, 3, 5, 7, 11] [ In ] for p in prvocisla: [In ] if p > 5: [In ] break [ In ] print(p) [Out] [2, 3, 5] [ In ] for p in prvocisla: [ In ] if p % 2 == 0: [ In ] continue [ In ] print(p) [Out] [3, 5, 7, 11] 12/18

Obsah přednášky 1 2 3 13/18

Čtení Funkce open() & read() [In ] fd = open( soubor.txt ) [ In ] data = fd. read() [In ] fd.close() Alternativní zápis with [ In ] with open( soubor. txt ) as fd: [ In ] data = fd. read() [ In ] type( data) [ Out] <class str > [In ] print(len(data)) [Out] 10594 [ In ] print( len( data. encode ())) [Out] 10788 14/18

Binární režim [ In ] with open( soubor. txt, rb ) as fd: [ In ] data = fd. read() [ In ] type( data) [In ] print(len(data)) [ Out] <class bytes > [Out] 10788 Přístup k bajtům, převod na znaky [ In ] data[0] [ In ] type( data[0]) [ In ] chr( data[0]) [Out ] 49 [ Out ] <class int > [Out ] 1 https://cs.wikipedia.org/wiki/ascii 15/18

Čtení obsahu Načtení obsahu do paměti [ In ] with open( soubor. txt ) as fd: [ In ] data = fd. read() [ In ] for radek in data. splitlines(): [ In ] print( len( radek)) [Out] 28 [Out] 39 [Out]... Čtení řádků ze souboru [ In ] with open( soubor. txt ) as fd: [ In ] for radek in fd. readlines(): [ In ] print( len( radek)) [Out] 29 [Out] 40 [Out]... 16/18

Zápis Režim write [ In ] with open( testament. txt, w ) as fd: [In ] fd.write( Miluji ) Pokud soubor existuje, tak bude přepsán! Režim append [ In ] with open( testament. txt, a ) as fd: [ In ] fd. write( + \n ) Kontrola [ In ] with open( testament. txt ) as fd: [In ] print(fd.read()) [ Out] Miluji [Out] 17/18

Přepsání obsahu Víceřádkový řetězec [ In ] with open( testament. txt, w ) as fd: [ In ] fd. write( Ach, kdybych já byl studoval [ In ] v svém mládí bláznivém, můj Bože, [ In ] a na dobré se mravy dal, [ In ] teď měl bych dům a měkké lože. ) https://en.wikipedia.org/wiki/le_testament Kontrola [ In ] with open( testament. txt ) as fd: [In ] print(fd.read()) [ Out] Ach, kdybych já byl studoval [ Out] v svém mládí bláznivém, můj Bože, [ Out] a na dobré se mravy dal, [ Out] teď měl bych dům a měkké lože. 18/18