Python3 Babitas

Jazyk Python

  • mezery, uvozovky, odsazení bloků
  • print("Test")
  • komentář pomocí #
  • """Komentář na více řádků"""

Klíčová slova

  • speciální hodnoty: False, None, True
  • operátory: and, or, in, is, not
  • deklarace: class, def, global, import, lambda, nonlocal
  • flow control: break, continue, if, else, elif, except, finally, for, pass, return, try, while, with, yield
  • ostatní: as, assert, del, from, raise

Identifikátory

  • a-zA-Z0-9_, první znak alfabetický
  • test != Test
  • camelCase, under_score
  • proměnné, KONSTANTY
  • přiřazení pomocí =

⌘ Příklad

  • Uložte si 2 různé proměnné (číslo a řetězec) a vypište je

⌘ Příklad

  • Napište skript, který definuje konstantu PI na 2 desetinná místa
  • Deklarujte proměnnou r
  • Vypište obvod kružnice s poloměrem r a obsah

Datové typy

  • type(promenna) vypíše typ proměnné promenna
  • přetypování je automatické

Boolean

  • True, False
  • zkuste si operátory is a not

Čísla

  • literály: 0b1010, 23091, 0o702, 0xff, 1.5e2, 230.44
  • konverze int, float
  • float vs. int
  • operátory +, *, /, //, %
  • porovnávací operátory ==, !=, >, <, >=, <=
  • binární operátory &, |, ~, ^, >>, <<
  • lze kombinovat s přiřazením, např. +=, *=

⌘ Příklady

  • Co dělá operátor **?
  • Zkuste přesnost Pythonu na počet desetinných míst 0.1234567890123456789
  • Zapište vzoreček $2^{(2+3)} / (8*2)$, jaký je výsledek?
  • Vypočtěte druhou odmocninu z deklarované proměnné x
  • Pro trojúhelník platí, že pokud $s = {a+b+c \over 2}$, pak $obsah = \sqrt(s(s-a)*(s-b)*(s-c))$, napište skript, který ho vypočte.
  • input("prompt: ")

Seznam list

  • l = [1, 2, 3, 4, 5, 6, 7], prvky mohou být libovolné datové typy
  • doc (anglicky)
  • máme k dispozici funkce len, pop, count, index, append, …
  • indexování od 0, negativní index
  • l[0], l[100], l[4:], l[1:2]
  • l[1:3] = [9, 8]
  • reprezentace matice
  • del, in, not in
  • funkce range, any, enumerate, max, sum

⌘ Příklady

  • Vypočtěte součet prvních 1000 přirozených čísel

List comprehension

  • [item for item in list if condition]

⌘ Příklady

  • Vygenerujte seznam všech sudých čísel menších než 100.
  • Vygenerujte seznam dvojic, kdy první číslo je 1 až 10 a druhé číslo je jeho 2. mocnina.

Ntice (tuple)

  • podobná jako seznam, neměnná
  • obvykle rychlejší, konverze list a tuple

Řetězec string

  • neměnná sekvence jako tuple
  • literály: "z", 'řetězec', \nA\t, \ufeff, """XX"""
  • escape sekvence
  • Unicode / UTF-8
  • násobení řetězce, konkatenace, in
  • strip, len, split, lower, upper, find, replace
  • metody seznamů
  • porovnávací operátory a řetězce

⌘ Palindrom

⌘ Odstranění interpunkce

⌘ Vypsání textu pozpátku (po slovech)

⌘ 1D piškvorky

Množina set

  • s = {1, 2, 3, 2, 2}
  • neuspořádaná, unikátní prvky
  • set, add, další viz zde
  • |, &, -, ^

Slovník dict

  • klíče a hodnoty, neuspořádané
  • klíče: čísla, řetězce, ntice
  • slovník ze seznamu dvojic
  • get, setdefault, pop, items, values

⌘ Slovník slovníků

⌘ Příklad konverze mezi datovými typy

  • num > string
  • string > list
  • list > dict
  • string > int / float

print funkce

  • více parametrů, formátování
  • formátování "Hodnota x je {} a y {}".format(x, y)
  • "Hodnota x je {1} a y {}".format(y, x)
  • "Ahoj {jmeno}, {pozdrav}".format(jmeno="Vítku", pozdrav="jak se máš?")
  • "Řetězec %s, celé číslo %d a reálné číslo %.4f" % ("řřř", 3, 3.1415926)

import modulu

  • random, sys
  • Google je tvůj přítel!

Flow control

Podmínka if

if condition1:
    statement1
elif cond2:
    statement2
else:
    statement3

Cyklus for, while

for item in sequence:
    statement

while condition:
    statement
  • break, continue, pass

⌘ Nekonečný cyklus

⌘ Součet dvou matic

⌘ Kámen nůžky papír

⌘ Seznam dělitelů

⌘ Test prvočíselnosti

⌘ Kreslení

  • Napiš funkci, která dostane seznam souřadnic (párů čísel menších než 10, která určují sloupec a řádek) a vypíše je jako mapu: mřížku 10×10, kde na políčka která jsou v seznamu napíše X, jinde tečku. Například: nakresliMapu([(0, 0), (1, 0), (2, 2), (4, 3), (8, 9), (8, 9)])

Funkce

def function_name(parameters):
    statements
  • uživatelské a vestavěné funkce
  • volání
  • return
  • viditelnost proměnných
  • povinné a defaultní parametry

⌘ Odmocnina

⌘ Ukázka rekurze (fibonacci)

Funkce jako parametr (numerické operace)

Lambda funkce

  • lambda x: expression
  • filter, map

I/O

⌘ Velikost JPEG obrázku

  • výška je na 2 B na 164. pozici
  • další 2 B označují šířku
for line in open(filename):
    f(line)

⌘ Generování HTML

Regulární výrazy

  • modul re
  • match, search, sub

Výjimky, ošetření

November 18, 2018 |