====== 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 {[a4b99rph: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 kurz [[http://www.codecademy.com/en/tracks/python]]. * 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/|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í režimu vyskočíte ''Ctrl-d'', či napsáním ''exit()''. Nainstalujte verzi 3.x, nejlépe 3.4.x. S největší pravděpodobností vám bude stačit libovolná 3.x verze, ale 3.5 a novější mohou obsahovat něco, co verze 3.4 používaná např. systémem BRUTE neumí. ===== Python 2 vs 3 ===== Po dobrých zkušenostech v minulých letech, vycházíme z novější verze 3.x, konkrétně 3.6.x. Verze 3 není s verzí 2 kompatibilní. Nicméně mnoho nových vlastností bylo importováno zpět do verze 2.7.x která je poslední vývojovou větví verze 2. Verze 3 má mnoho výhod, jedinou nevýhodou je (zatím) nedostupnost některých [[http://python3wos.appspot.com/|knihoven]]. Jelikož je ovšem verze 3 na světě již několik let, mnoho knihoven portováno bylo. ===== 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 jednoduché prostředí [[wp>IDLE_(Python)|IDLE]], které je součástí standardní instalace Pythonu. Více také [[courses:a4b99rph: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]]. - použít IDE [[https://code.visualstudio.com/docs/languages/python|Visual Studio Code]] - 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. Kromě 2 posledních možností by všechny alternativy měly fungovat v učebnách 402 a 405. V A4B99RPH bude podporováno 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.