====== Samostudium základů Pythonu ====== Přehled zdrojů pro úplné začátečníky, kteří se chtějí naučit základy Pythonu: datové typy, řízení toku (podmínky, cykly), datové struktury (list, dict, tuple, set), funkce a základy objektově orientovaného programování (objekty, třídy). **Doporučení**: V rychlosti si projděte níže uvedené zdroje/kurzy; cílem je identifikovat jeden (nebo dva), který je vám sympatický. Z tohoto kurzu pak důkladně projděte ty části, které jsou u něj uvedeny. **Je třeba si věci vlastnoručně zkoušet**, nejen číst či koukat na videa! S některými uvedenými zdroji máme jisté zkušenosti, rozhodně ne se všemi. Budeme rádi za zpětnou vazbu (abychom případné nekvalitní/nevhodné mohli vyřadit) či za tipy na jiné zdroje, které vám naopak vyhovovaly. ===== České zdroje ===== ==== Textové (knihy, e-booky, online texty) ==== * **[[https://naucse.python.cz/course/pyladies/|Nauč se Python! (naucse.python.cz)]]** – oficiální výukové materiály české Python komunity (PyLadies / Coding Club), volně dostupné online, členěné do lekcí s cvičeními. * Datové typy: lekce "Proměnné a datové typy" * Řízení toku: lekce "Podmínky", "Cykly" * Datové struktury (list/dict/tuple/set): lekce "Seznamy", "Slovníky", "Množiny a n-tice" * Funkce: lekce "Funkce" * Objekty a třídy: lekce "Třídy a objekty" (pokročilejší běhy kurzu) * **[[https://howto.py.cz/|Programování v jazyce Python 3]]** - adaptace knihy Elkner, Downey, Meyers: How to think like a computer scientist. Volně dostupné online, členěné do sekcí. * Kapitoly 1 až 10. * Kapitola 11 jako bonus. ==== Videokurzy ==== * [[https://www.youtube.com/playlist?list=PLQ8x_VWW6AktSriRsoH7LH_-t0LqS6aa_|Python pro začátečníky]] - série (většinou) krátkých videí * Kurzy Lucie Lenertové: * [[https://www.youtube.com/playlist?list=PLjQgcUrQ52qmgRdCep7pVm_XNhDd3lrAz|Python pro začátečníky]] * [[https://www.youtube.com/playlist?list=PLjQgcUrQ52qkGn1TXcH4lyIIe7Ni_8L5v|Python pro mírně pokročilé]] - objektové programování ===== Anglické zdroje ===== ==== Textové (knihy, e-booky, online texty) ==== * **[[https://automatetheboringstuff.com/|Automate the Boring Stuff with Python – Al Sweigart]]** – celá kniha zdarma online, praktický přístup s okamžitým využitím naučeného. * Datové typy: Chapter 1 "Python Basics" * Řízení toku: Chapter 2 "Flow Control" * Datové struktury: Chapter 4 "Lists" (list, tuple), Chapter 5 "Dictionaries and Structuring Data" (dict, set) * Funkce: Chapter 3 "Functions" * Objekty a třídy: Chapter 15/17 "Object-Oriented Programming" (dle vydání) * **[[https://greenteapress.com/wp/think-python-2e/|Think Python 2e – Allen B. Downey]]** – volně dostupná (CC licence) učebnice zaměřená na programátorské myšlení, PDF i HTML verze zdarma. * Datové typy: Chapter 2 "Variables, Expressions and Statements" * Řízení toku: Chapter 5 "Conditionals and Recursion", Chapter 7 "Iteration" * Datové struktury: Chapter 10 "Lists", Chapter 11 "Dictionaries", Chapter 12 "Tuples", Chapter 19 "Sets" (v novějším vydání) * Funkce: Chapter 3 "Functions" * Objekty a třídy: Chapter 15–18 "Classes and Objects", "Classes and Functions", "Classes and Methods", "Inheritance" * **[[https://python.swaroopch.com/|A Byte of Python – Swaroop C H]]** – krátká, přehledná a zdarma dostupná učebnice vhodná jako rychlý úvod. * Datové typy: kapitola "Data Types" * Řízení toku: kapitola "Control Flow" * Datové struktury: kapitola "Data Structures" (list, tuple, dict, set) * Funkce: kapitola "Functions" * Objekty a třídy: kapitola "Object Oriented Programming" * **[[https://docs.python.org/3/tutorial/index.html|The Python Tutorial (docs.python.org)]]** – oficiální anglický tutoriál, autoritativní a vždy aktuální zdroj. * Datové typy: section 3 "An Informal Introduction to Python" * Řízení toku: section 4 "More Control Flow Tools" * Datové struktury: section 5 "Data Structures" * Funkce: section 4.6–4.8 "Defining Functions" * Objekty a třídy: section 9 "Classes" ==== Videokurzy ==== * **[[https://cs50.harvard.edu/python/|CS50's Introduction to Programming with Python (Harvard)]]** – kompletní univerzitní kurz zdarma (i s titulky), zahrnuje přednášky, problem sety a kvízy. * Datové typy: Week 0 "Functions, Variables" * Řízení toku: Week 1 "Conditionals" a Week 2 "Loops" * Datové struktury: Week 3 "Exceptions, Libraries" a Week 5 "Unit Tests" (list/dict se objevují průběžně od Week 2–4) * Funkce: Week 0 "Functions, Variables" * Objekty a třídy: Week 6 "File I/O, Regular Expressions" navazuje, OOP je v Week 8/9 dle ročníku kurzu "Object-Oriented Programming" * **[[https://www.youtube.com/watch?v=rfscVS0vtbw|Python for Beginners – Programming with Mosh (YouTube)]]** – populární cca 6hodinové video zdarma, vhodné pro rychlý ucelený úvod. * Datové typy: část "Variables", "Receiving Input", "Type Conversion" * Řízení toku: část "Comparison Operators", "if statements", "Logical Operators", "for loops", "while loops" * Datové struktury: část "Lists", "2D Lists", "Tuples", "Dictionaries" * Funkce: část "Functions", "Variable Scope" * Objekty a třídy: závěrečná část "Classes", "Constructors", "Inheritance" * **[[https://www.youtube.com/playlist?list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU|Corey Schafer – Python Tutorials (YouTube)]]** – playlist zaměřený na jednotlivá témata do hloubky, výborný zejména pro OOP. * Datové typy: video "Python Tutorial: Strings", "Python Tutorial: Numbers" * Řízení toku: video "Python Tutorial: Comparisons...", "Python Tutorial: For Loops...", "Python Tutorial: While Loops" * Datové struktury: video "Python Tutorial: Lists, Tuples, and Sets", "Python Tutorial: Dictionaries" * Funkce: video "Python Tutorial: Functions" * Objekty a třídy: playlist "Python OOP Tutorials – Working with Classes" * **[[https://www.youtube.com/watch?v=eWRfhZUzrAc&list=PLWKjhJtqVAbnqBxcdjVGgT3uVR10bzTEB|freeCodeCamp.org – Python Full Course (YouTube)]]** – více celovečerních kurzů zdarma pokrývajících kompletní základy (Python for beginners), ale i pokročilejší témata. * Datové typy, řízení toku, datové struktury, funkce: úvodní bloky kurzu (dle konkrétního videa, obvykle první 2–4 hodiny) * Objekty a třídy: závěrečné bloky kurzu věnované OOP ==== Interaktivní kurzy ==== * **[[https://www.w3schools.com/python/|W3Schools – Python Tutorial]]** – stručný interaktivní tutoriál s editorem "Try it Yourself" u každé kapitoly, zcela zdarma. * Datové typy: kapitola "Python Data Types", "Python Numbers", "Python Casting" * Řízení toku: kapitola "Python If...Else", "Python While Loops", "Python For Loops" * Datové struktury: kapitola "Python Lists", "Python Tuples", "Python Sets", "Python Dictionaries" * Funkce: kapitola "Python Functions" * Objekty a třídy: kapitola "Python Classes/Objects", "Python Inheritance" * **[[https://jiki.io/|jiki.io]]** – začátečnický interaktivní kurz * **[[https://exercism.org/tracks/python|Exercism – Python Track]]** – zdarma, s možností mentoringu, postupné procvičování formou drobných úloh od základů po pokročilejší koncepty. * Datové typy: úvodní cvičení (např. "Two Fer", "High Scores") * Řízení toku: cvičení "Leap", "High Scores" (podmínky a cykly) * Datové struktury: cvičení pracující s listy, tuple, dict, set (např. "Matrix", "Word Count") * Funkce: cvičení vyžadující definici vlastních funkcí prakticky ve všech úlohách * Objekty a třídy: cvičení "Clock", "Robot Name" a další v pokročilejší části stromu úloh * **[[https://www.freecodecamp.org/learn/python-v9/|freeCodeCamp]]** - Python track ===== Poznámka ===== Odkazy a čísla kapitol/lekcí odpovídají stavu zdrojů v době sestavení této stránky. U online kurzů se obsah a číslování lekcí může v čase měnit – v případě nesouladu je vhodné dohledat aktuální obsah přímo na dané stránce.