Syntaxe a čísla Stanislav Geidl Lekce 1 Ä. Syntaxe a čísla C21B4 Úvod do programová C2184 Úvod do programování v Pythonu podzim 2016 Kód Komentář Proměnné Funkce a knihovny Základní datové typy Bloky Operátory Příklady Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita Ukázka kódu # komentár tt rt rt Toto je komentár rr rr rr a = 5 b = [1,2,3] c = sum (b) if a > c: c = b = a O def pozdrav(): print ( "Hello JATorld! ") return True import math print(math.pi) d = math.sqrt(2) Syntaxe a čísla Stanislav Geidl C21S4 do programování Komentář Proměnné Funkce a knihovny Základní datové typy Bloky Operátory Příklady 1.2 Komentář • komentář na jeden řádek začíná # • komentář na více řádku je uzavřen v bloku... • komentář slouží pro doplňující informace ke kódu pro autora nebo dalšího vývojáře - zvyšují míru čitelnosti a přehlednosti kódu • obecné zásady psaní komentářů: • komentáře nesmí duplikovat kód • komentář musí jednoznačně osvětlit popisovanou část kódu • komentuje se hlavička každého souboru, se kterým se pracuje • komentuje se hlavička všech objetků, funkcí a konstrukcí procedur • komentují se všechny netriviální konstrukce Syntaxe a čísla Stanislav Geidl C2184 Úvod do programování Proměnné Funkce a knihovny Základní datové typy Bloky Operátory Příklady 1.3 Proměnná (variable) • má svůj název (identifikátor, identifier) a • odkazuje na místo v paměti, kde je uložena tzv. hodnota (value) proměnné • propojení proměnné a její hodnoty provádíme pomocí přiřazení (assign) (=) a = 1 • Python je jazyk s dynamickou typovou kontrolou (do proměnné můžete uložit cokoliv, ale hodnoty si pamatují svůj typ) 10 + "a" • název proměnné se může skládat z malých (a velkých) písmen (bez diakritiky), čísel a podtržítka (_), nesmí začínat číslem, podtžítkem začínají speciální proměnné, název proměnné se nesmí shodovat s žádným z 34 klíčových SlOV jazyka Python: and, as, assert, break, class, continue, def, del, elif, else, expect, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield, True, False, None Funkce a jejich použití • funkce je část programu (je podprogram, angl. subroutine), která lze volat opakovaně z různých části programu • každá funkce má svůj název doplněný o závorky ;) print("Hellojtforld!") • knihovna je soubor proměnných, konstant, funkcí a dalších objektů, které můžeme načíst pro daný skript pomocí klíčového slova import • normálně pak používáme název knihovny před každou proměnnou, funkcí či jiným objektem (math.pi nebo math.sqrt()) import math D = math.pi + math.sqrt(2) Syntaxe a čísla Stanislav Geidl C2184 Úvod do programování v Pythonu Kód Komentář Proměnné Funkce a knihovny Základní datové typy Bloky Operátory Příklady 1.5 Základní datové typy Syntaxe a čísla Stanislav Geidl O boolean (booleovský typ) nabývá buď hodnoty True nebo False. © Čísla mohou být celá (integer; 1 a 2), reálná (float; 1.1a 1.2) nebo komplexní (complex; 3+1 j). © Řetězce (string) jsou posloupnosti Unicode znaků. Tuto podobu může mít například html dokument. O Bajty (byte) a pole bajtů, například soubor s obrázkem ve formátu jpeg. © Seznamy (list) jsou uspořádané posloupnosti hodnot. © N-tice (tuple) jsou uspořádané, neměnné posloupnosti hodnot. O Množiny (set) jsou neuspořádané kolekce hodnot. © Slovníky (dictionary) jsou neuspořádané kolekce dvojic klíč-hodnota. C21B4 do programová Kód Komentář Proměnné Funkce a knihovny Základní datové typ Bloky Operátory Příklady 1.6 Zjištění a změna typu Syntaxe a čísla Stanislav Geidl funkce type() >>> type (10) >>> type (1.5) >>> type (3 + 1j) >>> type(True) >>> type("test") >>> type(None) C21B4 do programová Kód Komentář Proměnné Funkce a knihovny Základní datové typ Bloky Operátory Příklady • změna pomocí funkce, která nese název podle typu, který I bude výsledkem, např. int() 1.7 Zjištění a změna typu • funkce type() • změna pomocí funkce, která nese název podle typu, který bude výsledkem, např. int() »> int ("10") 10 »> int ("10a") ValueError: invalid literal for int() with base 10: '10a' >>> int (10.6) 10 >>> float (1) 1.0 >>> bool(0) False >>> bool (1) True >>> bool(None) False >>> str(l) ' 1' Syntaxe a čísla Stanislav Geidl C2184 Úvod do programování Kód Komentář Proměnné Funkce a knihovny Základní datové typ Bloky Operátory Příklady 1.8 Bloky Bloky slouží k seskupení příkazů, například uvnitř cyklů, funkcí, objektů, struktur atd. Například v Pascalu jsou bloky označeny slovy BEGIN a END a v jazyce C slouží pro vytváření bloků špičaté závorky . V Pythonu se pro vytváření bloků používá odsazování. Nový blok vytvoříte tak, že napíšete na začátku řádků před příkazy, které spolu tvoří blok, libovolný počet mezer nebo tabulátorů. Ale před každým dalším příkazem v bloku musí být stejný počet mezer a tabulátorů! Odsadíte-li o mezeru více, nebo pokud místo tabulátoru použijete mezery, začnete tím jiný blok. Pokud vytvoříte nový blok na místě, kde nemá být, skončí program s chybou. bílé znaky = mezera, tabulátor, \n , \r prikaz1: blokl blokl prikaz2: blok2 blok2 prikaz3: blok3 Syntaxe a čísla Stanislav Geidl C21B4 do programová Kód Komentář Proměnné Funkce a knihovny Základní datové typy Bloky Operátory Příklady 1.9 Matematické operátory + % o abs () sčítání (např. 10 + 3) odčítání (např. 10-3) násobení (např. 10*3) dělení (např. 10/3) celočíselné dělení (např. 10 // 3 = 11) modulo (zbytek po celočíselném dělení; např. 10% 3 = 11) umocňování a odmocňování (např. 10 * *3 nebo 10 * *0.5) závorky funkce, která vrací absolutní hodnotu pořadí operací jako v matematice Co bude výsledkem 2 * *8 - (5 + 5) * 5 * 5 + 5? Syntaxe a čísla Stanislav Geidl 1» C21B4 do programová Kód Komentář Proměnné Funkce a knihovny Základní datové typy Bloky Operátorv Příklady Speciální typy přiřazení: += = *= /= %= //= a += 1 # a = a + 1 1.10 Příklad - řešení kvadratické rovnice Máme kvadratickou rovnici: ax2 + bx + c = 0 (1) známe hodnoty proměných a, ba c a hledáme hodnoty proměnných x1 a x2 a = 1 b = -6 c = 5 xl = ? x2 = ? print(xl) print(x2) Syntaxe a čísla Stanislav Geidl C2184 Úvod do programování v Pythonu Kód Komentář Proměnné Funkce a knihovny Základní datové typy Bloky Operátory 1.11 Příklad - řešení kvadratické rovnice Syntaxe a čísla Stanislav Geidl ax2 + bx + c = 0 (2) D = b2- Aac (3) 1» C21B4 Úvod do programová Kód Řešení pomoci diskrimintatu: Komentář Proměnné Funkce a knihovny Základní datové typy Bloky b±VD _ Operátory Příklady 1.12 Příklad - řešení kvadratické rovnice Syntaxe a čísla Stanislav Geidl a = 1 b = -6 c = 5 D = b**2 - 4*a*c xl = (-b+math.sqrt(D)) / (2*a) x2 = (-b-math.sqrt(D)) / (2*a) print(xl) print(x2) C2184 Úvod do programování Kód Komentář Proměnné Funkce a knihovny Základní datové typy Bloky Operátory Příklady 1.13