====== Python ====== Stránka pokytující návody a tutoriály, týkající se programovacího jazyka Python. ===== Knihy a učební texty ===== Předpokládáme samostatné čtení a domácí přípravu. Jako hlavní učební materiál doporučujeme {[b4b33rph:Wentworth2012]}. Pro ty, kterým se Python zalíbí, a my doufáme, že vás bude hodně, lze doporučit dobře dostupnou knihu {[a4b99rph:Summerfield2010]} či {[a4b99rph:Pilgrim-DIP3-preklad]}. V našich přednáškách začneme hned s jednoduchými objekty, nepůjdeme lineárně podle učebnice. Pro Python existuje mnoho on-line dostupných materiálů a také řada knih. [[http://docs.python.org/tutorial/|Python tutorial]]. Předpokládáme, že zkušení programátoři sami najdou Python literaturu, která jim bude nejvíce vyhovovat. Po začátečníky máme několik doporučení. * //Python for Software Design//, How to think like a computer scientist, {[a4b99rph:Downey2009]}. Velmi zajímavá a netradiční kniha, velmi čitelná. Dobré čtení pro hlavně pro ty, co nemají s programováním zkušenosti. Ale může být osvěžující i pro rutinní programátory. Je k dispozici i volně ke stažení. Její český [[https://howto.py.cz/|on-line překlad]] odpovídá starší verzi knihy. Aktualizovaná verze tohoto textu s ohledem na Python 3 je {[a4b99rph:Wentworth2012]}. * //Python 3 - výukový kurs//, {[a4b99rph:Summerfield2010]}, standardní učebnice. Obsahuje určitě více než budeme potřebovat pro tento předmět. * //Ponořme se do Pythonu 3//, {[a4b99rph:Pilgrim-DIP3-preklad]}. Kniha-učebnice psaná méně tradičním stylem. Pro někoho může být čitelnější, zajímavější než tradiční, ba skoro suchopárná {[a4b99rph:Summerfield2010]}. Výhodou je volně dostupné pdf. Originál textu je také ke [[http://www.diveintopython3.net/|stažení]]. * [[http://python.org/dev/peps/pep-0008/|Python Style Guide]]. Jak pojmenovávat moduly, proměnné, třídy a funkce, jak psát komentáře, atd. * [[http://tkinter.programujte.com/index.htm|Úvod do Tkinter]] knihovny pro grafické výstupy a programování GUI. ===== Interaktivní webové kurzy, videotutoriály ===== * Pro základní procvičení a úvod do Pythonu lze doporučit kurzy * [[http://www.codecademy.com/en/tracks/python]] * [[https://naucse.python.cz/]] * [[https://py.checkio.org/]] * Videa základech programování v Pythonu od kolegů z předmětu ALP: * [[https://cw.fel.cvut.cz/b211/courses/b3b33alp/cviceni/kratka_videa/start|Videa o Pythonu na stránkách ALP]] * [[https://www.youtube.com/playlist?list=PLQL6z4JeTTQnekjVfzM-q3hvWjO49GEJ2|YouTube playlist]] * Důkladnější (stále základní) kurzy najdete např. i na Coursera.org. Ačkoli kurzy právě neběží, mělo by být možné se podívat do archivů na videolekce. * [[https://www.coursera.org/course/programming1|Learn to program: The fundamentals]] * [[https://www.coursera.org/course/programming2|Learn to program: Crafting quality code]] * [[http://code.google.com/edu/languages/google-python-class/|Google's Python Class]] * [[http://www.pythontutor.com/|Python Tutor and Visualizer]] - Vizualizace toho, jak Python kód vypadá v paměti v jednotlivých krocích vykonávání ===== Instalace Pythonu ===== Pokud používáte Linux, Python bude již asi nainstalován. Pokud ne, instalujte pomocí svého manažera SW (např. Synaptic). Python bude s největší pravděpodobností přípraven v MacOSX (je založen na [[http://cs.wikipedia.org/wiki/BSD|BSD]]). Spusťte si terminál a napište ''which python''. V případě MS Windows téměř s jistotou přípraven nebude. Budete muset [[http://www.python.org/download/|instalovat]], což by mělo proběhnout bez problémů. V některých distribucích bude jako výchozí nastavena verze 2.6.x či 2.7.x. Zkontrolujete tak, že spustíte ''python'' z příkazové řádky. Příklad: [58] python Python 2.6.6 (r266:84292, Feb 15 2011, 15:55:02) [GCC 4.4.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> Z interaktivního režimu vyskočíte ''Ctrl-d'', či napsáním ''exit()''. Nainstalujte [[courses:b4b33rph:cviceni:python_version|verzi 3.x doporučenou pro aktuální semestr]]. Nainstalujete-li si novější verzi, může obsahovat něco, co automatická kontrola v BRUTE nebude umět (i když je toto nebezpečí poměrně malé). ===== IDE vs. jednoduché spouštění ===== Názory na vhodnost použití [[http://cs.wikipedia.org/wiki/Vývojové_prostředí|integrovaného vývojového prostředí]] (IDE-Integrated development environment) při výuce programování se liší. Já (Tomáš Svoboda) patřím spíše k odpůrcům, i když rozhodně respektuji sílu vhodného IDE pro pokročilé programátory. Pro vývoj v Pythonu máte mnoho možností, dovolím si nastínit alespoň několik z nich, seřazené podle stoupající komplexity prostředí (kromě PSPad editoru vše multiplatformní možnosti). - Použijte váš oblíbený editor [[http://cs.wikipedia.org/wiki/Vim|vim]], [[http://cs.wikipedia.org/wiki/Emacs|emacs]], gedit/Notepad či [[http://cs.wikipedia.org/wiki/PSPad|PSPad]] a program spouštět v příkazovém okně (shellu). Tato možnost bude asi přirozená pro uživatele GNU/Linuxu či OSX, které mají komfortní terminály. - Pokud chcete použít IDE, doporučujeme: * [[https://code.visualstudio.com/docs/languages/python|Visual Studio Code]], dnes standardní a velmi rozšířená možnost. Pro vzdálenou výuku se může hodit i jeho doplněk [[https://visualstudio.microsoft.com/cs/services/live-share/|Live Share]]. * [[http://www.jetbrains.com/pycharm/|PyCharm]] (Community Edition). Je multiplatformní a zkušenosti z let minulých ukazují, že začátečníkům i pokročilým vyhovuje (testováno na lidech). V mnoha ohledech je schopnější než VS Code. Nově je k dispozici i verze [[https://www.jetbrains.com/pycharm-edu/|PyCharm EDU]] přímo dělaná pro programátorské začátečníky (IDE je oproštěno od pokročilých funkcí a navíc obsahuje tutoriály). * Pro úplné začátečníky doporučujeme prostředí [[https://thonny.org/|Thonny]]. To důležité v něm najdete, vše ostatní je skryto. - Můžete použít i jednoduché prostředí [[wp>IDLE_(Python)|IDLE]], které je součástí standardní instalace Pythonu. V B4B33RPH budeme při ukázkách používat hlavně prostředí VS Code nebo PyCharm. Ačkoli je pravděpodobné, že vám budou cvičící schopni poradit i s jinými prostředími, s úplnou exotikou to může být obtížnější. Při odevzdávání bude kód testován nástroji na IDE nezávislými. ====== Návody ====== * [[.:filesystem|Práce se soubory]], krátký úvod do Python práce se souborovým systémem. * [[.:FAQ|Často pokládáné otázky]], problémy na které vaši kolegové čsto naráží. Průběžně doplňujeme, na základě diskusí s vámi, či na základě dotazů na diskusním fóru předmětu.