====== 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]], [[http://www.py.cz/FrontPage|české stránky]]. 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ý [[http://howto.py.cz/index.htm|on-line překlad]], {[a4b99rph:Kubias2008]}, odpovídá starší verzi knihy. Aktualizovaná verze tohoto textu s ohledem na Pyton3 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://pythonconquerstheuniverse.wordpress.com/category/python-debugger/|Python debugger]] dobrý úvod do Python debuggingu pro úplné začátečníky. * [[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/]] * 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 verzi 3.x, pro ZS 2020/21 nejlépe 3.8.x. Nainstalujete-li si novější verzi, může obsahovat něco, co automatická kontrola v BRUTE nebude umět. ===== 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žít 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 [[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). 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). - použít IDE [[https://code.visualstudio.com/docs/languages/python|Visual Studio Code]]; pro vzdálenou výuku se může hodit i jeho doplněk [[https://visualstudio.microsoft.com/cs/services/live-share/|Live Share]] - použít jednoduché prostředí [[wp>IDLE_(Python)|IDLE]], které je součástí standardní instalace Pythonu. Více také [[courses:b4b33rph:tutorialy:python:idle|IDLE (některé situace relevantní pro RPH)]]. - použít IDE Atom [[http://atom.io]] ([[http://www.marinamele.com/install-and-configure-atom-editor-for-python|návod]]) - použít IDE Eclipse s balíkem [[http://pydev.org/|PyDev]]. - doinstalovat Python podporu do Netbeans, [[http://forums.netbeans.org/viewtopic.php?p=104025|návod pro Netbeans 7.0]]. Někomu může vyhovovat silná orientace na projekt. Ale přenositelnost projektu mezi počítači či OS není zdaleka přímočará. Netbeans plugin pro Python není oficiálním produktem firmy Oracle, je vyvíjen komunitou a jeho budoucnost je nejistá. Máte-li někdo přesnější informace, rádi se je dozvíme. V B4B33RPH bude podporováno především prostředí 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. ====== Lokální návody ====== * [[.:mswin|MS Windows]] návody, nastavení pro vývoj a běh Python programů v prosředí OS MS Windows. * [[.: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.