diff --git a/01-uvod/01-uvod.tex b/01-uvod/01-uvod.tex index eb5857893b82513065f4703666fdbfae198b5ec8..189fc844f974aca52d87652e06fa4511e74bfdab 100644 --- a/01-uvod/01-uvod.tex +++ b/01-uvod/01-uvod.tex @@ -7,7 +7,7 @@ \title{Programování 1: Úvod do Pythonu} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \institute{Katedra Aplikované Matematiky\\MFF UK Praha} -\date{2019} +\date{2020} \begin{document} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{footline}{} diff --git a/01-uvod/first-comments.py b/01-uvod/first-comments.py index 7df2b95b1d4d41d1432669525df2321d71662c7e..a31a2d1f3f31df3cdee77442f5832ac409db2850 100644 --- a/01-uvod/first-comments.py +++ b/01-uvod/first-comments.py @@ -1,8 +1,7 @@ #!/usr/bin/env python3 # Nejprve zjistíme, do kolika počítat -print("Do kolika chceš počítat?") -n = int(input()) +n = int(input("Do kolika chceš počítat? ")) # Aktuální číslo i = 1 diff --git a/01-uvod/first-input.py b/01-uvod/first-input.py index a781154341014790df7e3c0abf4bfdf7abbbedad..3f50d1856d524bedbb277eb12191fb048a166f8a 100644 --- a/01-uvod/first-input.py +++ b/01-uvod/first-input.py @@ -1,5 +1,4 @@ -print("Do kolika chceš počítat?") -n = int(input()) +n = int(input("Do kolika chceš počítat? ")) i = 1 diff --git a/02-cykly/02-cykly.tex b/02-cykly/02-cykly.tex index f7a424d43e1d677fab43321ec4a4f6c965afbaa9..14e2924d56f6bdbd6677f96f5ea93c5ec141e419 100644 --- a/02-cykly/02-cykly.tex +++ b/02-cykly/02-cykly.tex @@ -7,7 +7,7 @@ \title{Programování 1: Podmínky a cykly} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \institute{Katedra Aplikované Matematiky\\MFF UK Praha} -\date{2019} +\date{2020} \begin{document} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{footline}{} @@ -30,7 +30,11 @@ ~ -Pokud bychom chtěli {\it příkazy} vynechat, můžeme místo nich napsat {\bf pass}. +Větev {\bf else} můžeme vynechat. + +~ + +Pokud bychom chtěli vynechat {\it příkazy,} můžeme místo nich napsat {\bf pass}. To je prázdný příkaz. \end{frame} diff --git a/02-cykly/posloupnost-max.py b/02-cykly/posloupnost-max2.py similarity index 100% rename from 02-cykly/posloupnost-max.py rename to 02-cykly/posloupnost-max2.py diff --git a/03-seznamy/03-seznamy.tex b/03-seznamy/03-seznamy.tex index 9224202fe7eb6074741b16e9d3f122a57323e108..9b3ebcaa1ab070e825bf22d43098c0c3bf81c7bb 100644 --- a/03-seznamy/03-seznamy.tex +++ b/03-seznamy/03-seznamy.tex @@ -7,7 +7,7 @@ \title{Programování 1: Seznamy} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \institute{Katedra Aplikované Matematiky\\MFF UK Praha} -\date{2019} +\date{2020} \begin{document} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{footline}{} diff --git a/04-trideni/04-trideni.tex b/04-trideni/04-trideni.tex index 7abef0ca4933a6c05625e8282f2b4109d853d6ad..0c6fac78d700ef8b18e859515a7e1119d1d2a967 100644 --- a/04-trideni/04-trideni.tex +++ b/04-trideni/04-trideni.tex @@ -7,7 +7,7 @@ \title{Programování 1: Třídění a vyhledávání} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \institute{Katedra Aplikované Matematiky\\MFF UK Praha} -\date{2019} +\date{2020} \begin{document} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{footline}{} diff --git a/05-funkce/05-funkce.tex b/05-funkce/05-funkce.tex index 268b03c4898d1e4372c877a70ff4da7ece60d09b..7e6500cbf44f9515a1396c924b8c87fd1f12dc65 100644 --- a/05-funkce/05-funkce.tex +++ b/05-funkce/05-funkce.tex @@ -7,7 +7,7 @@ \title{Programování 1: Funkce} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \institute{Katedra Aplikované Matematiky\\MFF UK Praha} -\date{2019} +\date{2020} \begin{document} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{footline}{} @@ -116,7 +116,7 @@ def stekej(n=1, zvuk="Haf!"): \\ stekej() \\ stekej(5) \\ stekej(5, "HAF!") \\ -stekej(5, zvuk="HAF!") \\ +stekej(n=5, zvuk="HAF!") \\ stekej(zvuk="HAF!") } diff --git a/06-rezy/06-rezy.tex b/06-rezy/06-rezy.tex index 51ce857977cbdb5f9bbf7da75225c0285ee28bfa..20b49551c0851478abe00f085425b4a381de436b 100644 --- a/06-rezy/06-rezy.tex +++ b/06-rezy/06-rezy.tex @@ -7,7 +7,7 @@ \title{Programování 1: Seznamy, řezy a řetězce} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \institute{Katedra Aplikované Matematiky\\MFF UK Praha} -\date{2019} +\date{2020} \begin{document} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{footline}{} @@ -270,4 +270,40 @@ True \cmt{(pozor, nerespektuje česká pravidla)} % ---------------------------------------------------------------------- +\begin{frame}{Převody mezi typy dat} + +\py{% +int("123") +}{% +123 +} + +\py{% +str(123) +}{% +"123" +} + +\py{% +list("123") +}{% +['1', '2', '3'] +} + +\py{% +str(['1', '2', '3']) +}{% +"['1', '2', '3']" +} + +\py{% +list(range(1, 10)) +}{% +[1, 2, 3, 4, 5, 6, 7, 8, 9] +} + +\end{frame} + +% ---------------------------------------------------------------------- + \end{document} diff --git a/07-compr/07-compr.tex b/07-compr/07-compr.tex index 2e47c89599873b2aff16ad5d97cd806fe3d9afd5..28d4d1131c7ed1ac320f359b1a9f84c9c9ecd999 100644 --- a/07-compr/07-compr.tex +++ b/07-compr/07-compr.tex @@ -7,7 +7,7 @@ \title{Programování 1: List comprehensions} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \institute{Katedra Aplikované Matematiky\\MFF UK Praha} -\date{2019} +\date{2020} \begin{document} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{footline}{} diff --git a/07-compr/priklady.py b/07-compr/priklady.py index db3470b0250d289f24ea3dbaa281ad2bf37df1fe..dc258a9941d5eaa7dedcb24ae95685081bfc036f 100644 --- a/07-compr/priklady.py +++ b/07-compr/priklady.py @@ -19,5 +19,4 @@ def nasobeni_matic(x, y): def slova_podle_delky(radek): dvojice = [ (len(slovo), slovo) for slovo in radek.split() ] - for _, slovo in sorted(dvojice): - print(slovo) + return [ slovo for _, slovo in sorted(dvojice) ] diff --git a/08-slovniky/08-slovniky.tex b/08-slovniky/08-slovniky.tex index 4647302fed450f045439834e959263cf34d41a48..b65b2d780e3dcb871f0c26d9854d8f79b6e2ee8d 100644 --- a/08-slovniky/08-slovniky.tex +++ b/08-slovniky/08-slovniky.tex @@ -7,7 +7,7 @@ \title{Programování 1: Množiny a slovníky} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \institute{Katedra Aplikované Matematiky\\MFF UK Praha} -\date{2019} +\date{2020} \begin{document} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{footline}{} @@ -35,7 +35,7 @@ zvířata } \py{% -"kočka" in zvířata +"kočka" in zvířata \cmt{(na rozdíl od seznamů rychlé)} }{% True } @@ -104,6 +104,12 @@ a - b \{'d'\} } +\py{% +a == b \cmt{(obsahují tytéž prvky?)} +}{% +False +} + \end{frame} % ---------------------------------------------------------------------- @@ -143,6 +149,12 @@ teploty.get("Peklo", -999) -999 } +\py{% +teploty == \{\} \cmt{(mají tytéž klíče i hodnoty k~nim?)} +}{% +False +} + \end{frame} % ---------------------------------------------------------------------- @@ -180,7 +192,7 @@ Longyearbyen = -46 % ---------------------------------------------------------------------- -\begin{frame}{List comprehension pro množiny a slovníky} +\begin{frame}{Comprehension pro množiny a slovníky} \py{% \{ x**2 for x in range(5) \} diff --git a/09-objekty/09-objekty.tex b/09-objekty/09-objekty.tex index 4d38ec70bec555e1329ec64167495fa46ed7ea8f..c7bf828783094151edebd615bf27ebaa61b82082 100644 --- a/09-objekty/09-objekty.tex +++ b/09-objekty/09-objekty.tex @@ -7,7 +7,7 @@ \title{Programování 1: Třídy a objekty} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \institute{Katedra Aplikované Matematiky\\MFF UK Praha} -\date{2019} +\date{2020} \begin{document} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{footline}{} @@ -267,7 +267,7 @@ True % ---------------------------------------------------------------------- -\begin{frame}{Jak to funguje uvnitř} +\begin{frame}{Jak to funguje uvnitř: namespaces a scope} {\bf Prostory jmen (namespaces):} @@ -276,7 +276,7 @@ True \begin{itemize} \item Zabudované funkce (třeba {\tt print}) \item Globální jména (proměnné, funkce) -\item Lokální jména uvnitř funkce +\item Lokální jména uvnitř funkce (každého zavolání) \item Jména definovaná v~třídě \item Jména definovaná v~objektu \end{itemize} @@ -284,7 +284,7 @@ True \medskip Obyčejné jméno se hledá ve všech prostorech, které jsou na daném -místě v~programu \uv{vidět}. +místě v~programu \uv{vidět}. Tomu se říká {\bf scope.} \medskip @@ -306,7 +306,8 @@ místě v~programu \uv{vidět}. \begin{frame}{Jak to funguje uvnitř: zabudované typy} {\bf Zabudované typy jako int, str apod.} jsou rovněž třídy. -Volání {\tt int()} nebo {\tt int("1")} je prostě vytvoření objektu dané třídy. +Volání {\tt int()} nebo {\tt int("1")} je prostě vytvoření objektu dané třídy +(nebo recyklování existujícího u~neměnných typů). \medskip diff --git a/Makerules b/Makerules index ed3318593856dafeb72ce9ba10e1b7cde4867aaf..d1a19700a4541f412d58159225eaa05aa4a832e8 100644 --- a/Makerules +++ b/Makerules @@ -11,4 +11,4 @@ clean:: rm -rf __pycache__ upload:: - rs $(SLIDES) jw:www/static/vyuka/1920/p1m/ + rs $(SLIDES) jw:www/static/vyuka/2021/p1m/ diff --git a/TODO b/TODO index dc199240fef4e8e5b59a772f617735f6931c0826..361d00c2ccb5d179154c8766f80faba2c3aed22c 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,3 @@ -- input("Prompt") - - and/or vyhodnocované zkráceně - if jako výraz? - rekurze @@ -7,4 +5,6 @@ - příště u domácích úkolů napsat, jak velké vstupy mají zvládat -- objektový DÚ: páry jsou hrozně matoucí +- ukázat ipython + +- dataclass