Lekce 2 Začínáme programovat I. Základní konstrukce jazyka: základní datové typy, matematické operátory. C2184 Úvod do programování v Pythonu podzim 2015 Začínáme programovat I. Mgr. Stanislav Geidl C2184 Uved do programováni Proměnné Základní datové typy Operátory Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita 2.1 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 = i ukázka • Python je jazyk s dynamickou typovou kontrolou (do proměnné můžete uložit cokoliv, ale hodnoty si pamatují svůj typ) 10 + "a" ukázka • 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 Základní datové typy O boolean (booleovský typ) nabývá buď hodnoty Tme nebo False. © Čísla mohou být celá (integer; 1 a 2), reálná (float; 1.1 a 1.2) nebo komplexní (complex; 3+1 j). © Řetězce (string) jsou posloupnosti Unicode znaků. Tuto podobu může mít naprí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. Začínáme programovat I. Mgr. Stanislav Geidl C2184 Uved do programováni Proměnné Operátory 2.3 Odbočka: funkce a jejich použití • funkce je část programu (je která lze volat opakovaně z příkladem může být funkce podprogram, angl. subroutine), různých části programu, print() Začínáme programovat I. Mgr. Stanislav Geidl 02184 Úvod do programováni v Pythonu Proměnné Operátory 2.4 Zjištění a změna typu • funkce type() >>> type (10) >>> type (1.5) >>> type (3 + 1j) >>> type(True) >>> type("test") »> type (None) Začínáme programovat I. Mgr. Stanislav Geidl C2184 Uved do programováni v Pythonu Proměnné Operátory • změna pomocí funkce, která nese název podle typu, který bude výsledkem, např. int() 2.5 Zjištěni 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) Falše >>> bool(1) True >>> bool(None) Falše >>> str(l) ' 1' Začínáme programovat I. Mgr. Stanislav Geidl «!"'----- i" C2184 Úvod do programování Operátory 2.6 Matematické operátory + % o abs () Začínáme programovat I. Mgr. Stanislav Geidl 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 umocňování (např. 10 * *3) závorky funkce, která vrací absolutní hodnotu C2184 Uved do programováni ' Proměnné Základní datové typy • pořadí operací jako v matematice • Co bude výsledkem 2 * *8 - (5 + 5) * 5 * 5 + 5? Speciální typy přiřazení: += = *= /= %= //= a += 1 # a = a + 1 2.7 Příklad - řešení kvadratické rovnice Začínáme programovat I. Mgr. Stanislav Geidl i C2184 Úvodí do programováni Proměnné Základní datové typy 2.8 Příklad - řešení kvadratické rovnice ax2 + bx + c = 0 D = b2 - 4ac D = b**2 - 4*a*c *1,2 -b±VD 2a xl x2 (-b+math. sqrt (D) ) / (2*a) (-b-math.sqrt(D)) / (2*a) (1) (2) (3) Začínáme programovat I. Mgr. Stanislav Geidl C2184 Úvod do programováni Proměnné Základní datové typy 2.9 Code style - názvy • b (jedno malé písmeno) • b (jedno velké písmeno) • lowercase • lower_case_with_underscores • UPPERCASE • UPPER_CASE_WITH_UNDERSCORES • CapitalizedWords (nebo CapWords nebo CamelCase nebo StudlyCaps) • mixedCase • Capitalized_Words_With_Underscores (hnusné!) Pro názvy lokálních proměnných budeme používat styl lowercase a lower_case_with_underscores. Speciální případ bude, když nám název proměnné bude kolidoval s klíčovým slovem např. ciass_. Začínáme programovat I. Mgr. Stanislav Geidl C2184 Úvod do programováni v Pythonu Proměnné Základní datové typy Operátory 2.10 Code style - přiřazení Začínáme programovat I. Mgr. Stanislav Geidl i C2184 Úvod d© programováni Proměnné Správně: X = 1 Y = 2 long_variable = 3 základní datové typy Operátory I I i long_variable = 3 2.11 Code style - volání funkce Správně: # Volání funkce bez mezery spam(1) # Vertikální zarovnání na otvírací závorkou foo = long_function_name(var_one, var_two, var_three, var_four) # Parametry na dalším řádcích s vlastním # odsazením foo = long_function_name( var_one, var_two, var_three, var_four) Špatně: # Volání funkce s mezery spam (1) # Zákaz používat argumenty na prvním řádku, # pokud nepoužijeme vertikální zarovnání foo = long_function_name(var_one, var_two, var_three, var_four) Začínáme programovat I. Mgr. Stanislav Geidl C2184 Úvod d© programováni Proměnné Základní datové typy Operátory 2.12 Code style - operátory Správně: i = i + 1 submitted += 1 x = x*2 - 1 hypot2 = x*x + y*y c = (a+b) * (a-b) Špatně: i=i+l submitted +=1 x = x * 2 - 1 hypot2 = x*x + y*y c = (a + b) * (a-b) Začínáme programovat I. Mgr. Stanislav Geidl C21B4 Úvcdl do programování v Pythonu Proměnné Základní datové typy Operátory 2.13