Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Martin Mareš
prm1
Commits
4cabfcb4
Commit
4cabfcb4
authored
Dec 15, 2020
by
Martin Mareš
Browse files
Merge branch 'master' of gitlab.kam.mff.cuni.cz:mj/prm1
parents
4e5388df
4b0a40cb
Changes
15
Hide whitespace changes
Inline
Side-by-side
01-uvod/01-uvod.tex
View file @
4cabfcb4
...
@@ -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
{
20
19
}
\date
{
20
20
}
\begin{document}
\begin{document}
\setbeamertemplate
{
navigation symbols
}{}
\setbeamertemplate
{
navigation symbols
}{}
\setbeamertemplate
{
footline
}{}
\setbeamertemplate
{
footline
}{}
...
...
01-uvod/first-comments.py
View file @
4cabfcb4
#!/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
...
...
01-uvod/first-input.py
View file @
4cabfcb4
print
(
"Do kolika chceš počítat?"
)
n
=
int
(
input
(
"Do kolika chceš počítat? "
))
n
=
int
(
input
())
i
=
1
i
=
1
...
...
02-cykly/02-cykly.tex
View file @
4cabfcb4
...
@@ -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
{
20
19
}
\date
{
20
20
}
\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}
...
...
02-cykly/posloupnost-max.py
→
02-cykly/posloupnost-max
2
.py
View file @
4cabfcb4
File moved
03-seznamy/03-seznamy.tex
View file @
4cabfcb4
...
@@ -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
{
20
19
}
\date
{
20
20
}
\begin{document}
\begin{document}
\setbeamertemplate
{
navigation symbols
}{}
\setbeamertemplate
{
navigation symbols
}{}
\setbeamertemplate
{
footline
}{}
\setbeamertemplate
{
footline
}{}
...
...
04-trideni/04-trideni.tex
View file @
4cabfcb4
...
@@ -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
{
20
19
}
\date
{
20
20
}
\begin{document}
\begin{document}
\setbeamertemplate
{
navigation symbols
}{}
\setbeamertemplate
{
navigation symbols
}{}
\setbeamertemplate
{
footline
}{}
\setbeamertemplate
{
footline
}{}
...
...
05-funkce/05-funkce.tex
View file @
4cabfcb4
...
@@ -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
{
20
19
}
\date
{
20
20
}
\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!")
}
}
...
...
06-rezy/06-rezy.tex
View file @
4cabfcb4
...
@@ -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
{
20
19
}
\date
{
20
20
}
\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}
07-compr/07-compr.tex
View file @
4cabfcb4
...
@@ -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
{
20
19
}
\date
{
20
20
}
\begin{document}
\begin{document}
\setbeamertemplate
{
navigation symbols
}{}
\setbeamertemplate
{
navigation symbols
}{}
\setbeamertemplate
{
footline
}{}
\setbeamertemplate
{
footline
}{}
...
...
07-compr/priklady.py
View file @
4cabfcb4
...
@@ -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
)
08-slovniky/08-slovniky.tex
View file @
4cabfcb4
...
@@ -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
{
20
19
}
\date
{
20
20
}
\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 c
omprehension pro množiny a slovníky
}
\begin{frame}
{
C
omprehension pro množiny a slovníky
}
\py
{
%
\py
{
%
\{
x**2 for x in range(5)
\}
\{
x**2 for x in range(5)
\}
...
...
09-objekty/09-objekty.tex
View file @
4cabfcb4
...
@@ -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
{
20
19
}
\date
{
20
20
}
\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
...
...
Makerules
View file @
4cabfcb4
...
@@ -11,4 +11,4 @@ clean::
...
@@ -11,4 +11,4 @@ clean::
rm -rf __pycache__
rm -rf __pycache__
upload::
upload::
rs $(SLIDES) jw:www/static/vyuka/
19
20/p1m/
rs $(SLIDES) jw:www/static/vyuka/20
21
/p1m/
TODO
View file @
4cabfcb4
- 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
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment