Základy programování v jazyce Python (VŠCHT – LS 2022/2023)
Jiří tečka Znamenáček plus PYT zavináč gmail tečka com

Pomůcky

Python
~ tahák pro Python 3.x
~ Python Enhancement Proposals (PEPs), především pak PEP 8 -- Style Guide for Python Code

Komentovaná řešení
~ rozpoznávání samohlásek
~ výpis Fibonacciho posloupnosti
~ součet prvků v seznamu
~ slovník písmen v textu

Nástroje
~ výukové: Karel (webová implementace jazyka Karel v češtině) a Guido van Robot (Karel v Pythonu)
~ distribuce Pythonu: Python.org (hlavní), MiniConda (alternativní „se vším všudy“)
~ pythoní shelly: DreamPie (grafický shell s víceřádkovou historií)
~ pythoní IDE: PyScripter (pro Windows), Spyder (IDE specificky zaměřené na vědeckou práci), PyCharm (ultimátní programátorské IDE; volná verze Community Edition)
~ textové editory: Notepad2 (minimalistický), PSPad (český), Notepad++ (programátorský), Sublime Text (placený)
~ SQLite: SQLite.org, DB Browser for SQLite
~ regexpy: kiki-re (GUI pro vizuální testování regexpů)

Příklady z hodin

  1. 2023-0N-nn:

Bloky

  1. Úvodní slovo & Organizace předmětu
    Potřebné programy a jejich instalace (Python, DreamPie, PSPad…)
  2. Úvod do Python'u za pomoci „želví“ (aneb relativní) grafiky:
    1. úvod
    2. další vlastnosti
    3. rekurzivní obrazce
  3. Aplikace želví grafiky – L-systémy (paralelní přepisovací gramatiky):
    1. úvod
    2. další příklady
  4. Kódování textů aneb „Co na to Unicode?“
  5. Základy Python'u:
        ~ základní řídicí konstrukce – podmínky, cykly, výjimky, funkce… (slajdy 12-17 o výjimkách pro informaci)
        ~ pravdivostní typ Boolean (včetně priorit operátorů)
        ~ použití funkce print()
        ~ funkce: základy, argumenty (parametry)
        ~ typy: řetězce, čísla, n-tice (tuples), slovníky, množiny, seznamy
        ~ přehled třídění/řazení v Python'u
        ~ kuchařka pro práci se soubory
        ~ generátorová notace
        ~ vstup dat do programu pomocí input() a sys.argv (po slajd 7)
        ~ kuchařka pro práci s moduly
        ~ …
  6. Další:
        ~ doc-testy v Python'u
        ~ práce s binárními daty: bajtové řetězce, bajtová pole, binární soubory
        ~ grafický formát PNM

        ~ další vestavěné datové typy: pojmenované n-tice (named tuples), slovníky s výchozími hodnotami (default dicts), modul Counter
  7. Python prakticky:
        ~ balíčky a virtuální prostředí:
    1. správa balíčků pomocí pipu
    2. správa virtuálních prostředí pomocí modulu venv
    3. prostředí Conda
        ~ práce s Jupyter Notebookem:
    1. úvod, instalace, spuštění
    2. základy práce

Domácí úkoly na (klasifikovaný) zápočet

Během kurzu se objeví nějaké nedořešené problémy, které vás nechám dopracovat doma. A na jejich základě pak nějak rozdělím klasifikované zápočty.

  1. Nainstalujte si Python. A nějaký vhodný textový editor. Úplně stačí základní distribuce z Python.org. Z editorů se pro začátek doporučuju vyhnout velkým pythoním IDE, tak se nic nenaučíte, bohatě postačí například český PSPad.