Commit 4cabfcb4 authored by Martin Mareš's avatar Martin Mareš
Browse files

Merge branch 'master' of gitlab.kam.mff.cuni.cz:mj/prm1

parents 4e5388df 4b0a40cb
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
\title{Programování 1: Úvod do Pythonu} \title{Programování 1: Úvod do Pythonu}
\author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
\institute{Katedra Aplikované Matematiky\\MFF UK Praha} \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
\date{2019} \date{2020}
\begin{document} \begin{document}
\setbeamertemplate{navigation symbols}{} \setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{} \setbeamertemplate{footline}{}
......
#!/usr/bin/env python3 #!/usr/bin/env python3
# Nejprve zjistíme, do kolika počítat # Nejprve zjistíme, do kolika počítat
print("Do kolika chceš počítat?") n = int(input("Do kolika chceš počítat? "))
n = int(input())
# Aktuální číslo # Aktuální číslo
i = 1 i = 1
......
print("Do kolika chceš počítat?") n = int(input("Do kolika chceš počítat? "))
n = int(input())
i = 1 i = 1
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
\title{Programování 1: Podmínky a cykly} \title{Programování 1: Podmínky a cykly}
\author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
\institute{Katedra Aplikované Matematiky\\MFF UK Praha} \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
\date{2019} \date{2020}
\begin{document} \begin{document}
\setbeamertemplate{navigation symbols}{} \setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{} \setbeamertemplate{footline}{}
...@@ -30,7 +30,11 @@ ...@@ -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. To je prázdný příkaz.
\end{frame} \end{frame}
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
\title{Programování 1: Seznamy} \title{Programování 1: Seznamy}
\author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
\institute{Katedra Aplikované Matematiky\\MFF UK Praha} \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
\date{2019} \date{2020}
\begin{document} \begin{document}
\setbeamertemplate{navigation symbols}{} \setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{} \setbeamertemplate{footline}{}
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
\title{Programování 1: Třídění a vyhledávání} \title{Programování 1: Třídění a vyhledávání}
\author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
\institute{Katedra Aplikované Matematiky\\MFF UK Praha} \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
\date{2019} \date{2020}
\begin{document} \begin{document}
\setbeamertemplate{navigation symbols}{} \setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{} \setbeamertemplate{footline}{}
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
\title{Programování 1: Funkce} \title{Programování 1: Funkce}
\author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
\institute{Katedra Aplikované Matematiky\\MFF UK Praha} \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
\date{2019} \date{2020}
\begin{document} \begin{document}
\setbeamertemplate{navigation symbols}{} \setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{} \setbeamertemplate{footline}{}
...@@ -116,7 +116,7 @@ def stekej(n=1, zvuk="Haf!"): \\ ...@@ -116,7 +116,7 @@ def stekej(n=1, zvuk="Haf!"): \\
stekej() \\ stekej() \\
stekej(5) \\ stekej(5) \\
stekej(5, "HAF!") \\ stekej(5, "HAF!") \\
stekej(5, zvuk="HAF!") \\ stekej(n=5, zvuk="HAF!") \\
stekej(zvuk="HAF!") stekej(zvuk="HAF!")
} }
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
\title{Programování 1: Seznamy, řezy a řetězce} \title{Programování 1: Seznamy, řezy a řetězce}
\author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
\institute{Katedra Aplikované Matematiky\\MFF UK Praha} \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
\date{2019} \date{2020}
\begin{document} \begin{document}
\setbeamertemplate{navigation symbols}{} \setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{} \setbeamertemplate{footline}{}
...@@ -270,4 +270,40 @@ True \cmt{(pozor, nerespektuje česká pravidla)} ...@@ -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} \end{document}
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
\title{Programování 1: List comprehensions} \title{Programování 1: List comprehensions}
\author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
\institute{Katedra Aplikované Matematiky\\MFF UK Praha} \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
\date{2019} \date{2020}
\begin{document} \begin{document}
\setbeamertemplate{navigation symbols}{} \setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{} \setbeamertemplate{footline}{}
......
...@@ -19,5 +19,4 @@ def nasobeni_matic(x, y): ...@@ -19,5 +19,4 @@ def nasobeni_matic(x, y):
def slova_podle_delky(radek): def slova_podle_delky(radek):
dvojice = [ (len(slovo), slovo) for slovo in radek.split() ] dvojice = [ (len(slovo), slovo) for slovo in radek.split() ]
for _, slovo in sorted(dvojice): return [ slovo for _, slovo in sorted(dvojice) ]
print(slovo)
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
\title{Programování 1: Množiny a slovníky} \title{Programování 1: Množiny a slovníky}
\author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
\institute{Katedra Aplikované Matematiky\\MFF UK Praha} \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
\date{2019} \date{2020}
\begin{document} \begin{document}
\setbeamertemplate{navigation symbols}{} \setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{} \setbeamertemplate{footline}{}
...@@ -35,7 +35,7 @@ zvířata ...@@ -35,7 +35,7 @@ zvířata
} }
\py{% \py{%
"kočka" in zvířata "kočka" in zvířata \cmt{(na rozdíl od seznamů rychlé)}
}{% }{%
True True
} }
...@@ -104,6 +104,12 @@ a - b ...@@ -104,6 +104,12 @@ a - b
\{'d'\} \{'d'\}
} }
\py{%
a == b \cmt{(obsahují tytéž prvky?)}
}{%
False
}
\end{frame} \end{frame}
% ---------------------------------------------------------------------- % ----------------------------------------------------------------------
...@@ -143,6 +149,12 @@ teploty.get("Peklo", -999) ...@@ -143,6 +149,12 @@ teploty.get("Peklo", -999)
-999 -999
} }
\py{%
teploty == \{\} \cmt{(mají tytéž klíče i hodnoty k~nim?)}
}{%
False
}
\end{frame} \end{frame}
% ---------------------------------------------------------------------- % ----------------------------------------------------------------------
...@@ -180,7 +192,7 @@ Longyearbyen = -46 ...@@ -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{% \py{%
\{ x**2 for x in range(5) \} \{ x**2 for x in range(5) \}
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
\title{Programování 1: Třídy a objekty} \title{Programování 1: Třídy a objekty}
\author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
\institute{Katedra Aplikované Matematiky\\MFF UK Praha} \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
\date{2019} \date{2020}
\begin{document} \begin{document}
\setbeamertemplate{navigation symbols}{} \setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{} \setbeamertemplate{footline}{}
...@@ -267,7 +267,7 @@ True ...@@ -267,7 +267,7 @@ True
% ---------------------------------------------------------------------- % ----------------------------------------------------------------------
\begin{frame}{Jak to funguje uvnitř} \begin{frame}{Jak to funguje uvnitř: namespaces a scope}
{\bf Prostory jmen (namespaces):} {\bf Prostory jmen (namespaces):}
...@@ -276,7 +276,7 @@ True ...@@ -276,7 +276,7 @@ True
\begin{itemize} \begin{itemize}
\item Zabudované funkce (třeba {\tt print}) \item Zabudované funkce (třeba {\tt print})
\item Globální jména (proměnné, funkce) \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~třídě
\item Jména definovaná v~objektu \item Jména definovaná v~objektu
\end{itemize} \end{itemize}
...@@ -284,7 +284,7 @@ True ...@@ -284,7 +284,7 @@ True
\medskip \medskip
Obyčejné jméno se hledá ve všech prostorech, které jsou na daném 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 \medskip
...@@ -306,7 +306,8 @@ místě v~programu \uv{vidět}. ...@@ -306,7 +306,8 @@ místě v~programu \uv{vidět}.
\begin{frame}{Jak to funguje uvnitř: zabudované typy} \begin{frame}{Jak to funguje uvnitř: zabudované typy}
{\bf Zabudované typy jako int, str apod.} jsou rovněž třídy. {\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 \medskip
......
...@@ -11,4 +11,4 @@ clean:: ...@@ -11,4 +11,4 @@ clean::
rm -rf __pycache__ rm -rf __pycache__
upload:: upload::
rs $(SLIDES) jw:www/static/vyuka/1920/p1m/ rs $(SLIDES) jw:www/static/vyuka/2021/p1m/
- input("Prompt")
- and/or vyhodnocované zkráceně - and/or vyhodnocované zkráceně
- if jako výraz? - if jako výraz?
- rekurze - rekurze
...@@ -7,4 +5,6 @@ ...@@ -7,4 +5,6 @@
- příště u domácích úkolů napsat, jak velké vstupy mají zvládat - 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
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment