Commit 1ad52a66 authored by cermak's avatar cermak
Browse files

Lesson 11

parent e0371afb
Pipeline #24089 passed with stage
in 1 minute and 35 seconds
......@@ -33,3 +33,13 @@ class Kocka(Zvire):
def slysi_na(self, jmeno):
# Copak kočka slyší na jméno?
return False
class Pes(Zvire):
_vrcim = False
def ozvi_se(self):
"""Vydá zvuk daného zvířete."""
self._vrcim = not self._vrcim
if self._vrcim:
print(self.jmeno, "říká:", self.zvuk)
\ No newline at end of file
\documentclass{beamer}
\title{Programování 1: Soubory a výjimky}
\title{Programování 1.11: Soubory a výjimky}
\input ../slidemac.tex
......@@ -26,7 +26,7 @@ Nás budou zajímat hlavně {\bf textové soubory:}
\begin{itemize}
\item Skládají se ze {\bf znaků} převedených na bajty nějakým {\bf kódováním},
nejčastěji:
nejčastěji
\begin{itemize}
\item ASCII (\uv{\kern1pt anglická abeceda} o~95 znacích)
......@@ -46,28 +46,24 @@ nejčastěji:
\begin{frame}{Jednoduchý příklad}
\pycode{file-triv.py}
{\bf open} otevírá soubor, dostává:
{\bf open(jmeno\_souboru, mode, encoding)} otevírá soubor:
\begin{itemize}
\item jméno souboru
\item mód přístupu:
\item {\tt mode}:
\begin{itemize}
\item {\tt r} = čtení
\item {\tt r} = čtení (default)
\item {\tt w} = zápis (založí/vyprázdní soubor)
\item {\tt a} = zápis na konec (append)
\item {\tt r+/w+} = čtení i zápis
\item {\tt r+} = čtení i zápis
\item {\tt w+} = jako r+ ale založí/vyprázdní soubor
\item {\tt rb} = binární čtení (bajty, ne text)
\end{itemize}
\item {\tt encoding=}kódování (default: podle OS)
\end{itemize}
\bigskip
Explicitnimu {\bf close} se můžeme vyhnout takto:
Explicitnimu {\bf close()} se můžeme vyhnout pomocí {\tt with}.
\pycode{file-with.py}
\pycode{file.py}
\end{frame}
......@@ -131,44 +127,6 @@ Vždy je k~dispozici:
% ----------------------------------------------------------------------
\begin{frame}{Formátování}
\py{%
"\{\} leží \{\}".format("kočka", "na okně")
}{%
'kočka leží na okně'
}
\py{%
"\{1\} leží \{0\}".format("kočka", "na okně")
}{%
'na okně leží kočka'
}
\py{%
"\{kdo\} leží \{kde\}".format(kdo="pes", kde="v boudě")
}{%
'pes leží v boudě'
}
\py{%
kdo="lenochod"\\
kde="na větvi"\\
f"\{kdo\} leží \{kde\}"
}{%
'lenochod leží na větvi'
}
\py{%
"\{0:05\} < \{1:05\}".format(1, 2)
}{%
'00001 < 00002' \cmt{(další varianty viz dříve)}
}
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}{Hlášení chyb}
{\bf test.py:}
......@@ -248,6 +206,14 @@ Traceback (most recent call last):\\
RuntimeError: Jejda!
}
\py{%
if not condition:\\
~~~~raise AssertionError()
}{%
[...]\\
AssertionError
}
\py{%
assert 1 == 2
}{%
......@@ -256,14 +222,31 @@ AssertionError
}
\py{%
assert 1 == 2, "Svět se nezbláznil"
assert 1 == 2, "Veselé vánoce!"
}{%
[...]\\
AssertionError: Svět se nezbláznil
AssertionError: Veselé vánoce!
}
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}{Úkoly na vánoční hodinu}
\begin{itemize}
\item Vánoční úloha v recodexu (5 bodů, do konce hodiny, první vyhrává vánoční pivo)
\item nebo:
\item Spočítejte, kolik je v souboru řádků, slov a viditelných znaků (tedy bez mezer a konců řádků)
\item Zkopíruje soubor do jiného souboru, aby řádky šly v opačném pořadí
\item Najděte na každém řádku všechna čísla (oddělená mezerami) a vypíše jejich součet; slova, která nejsou čísly, ignoruje.
\end{itemize}
\end{frame}
% ----------------------------------------------------------------------
\end{document}
f = open('soubor.txt', 'w')
f.write('Hej mistře!\n')
f.close()
f = open('soubor.txt', 'w')
f.write('Hej mistře!\n')
f.close()
# alternativně:
with open('soubor.txt', 'w') as f:
f.write('Hej mistře!\n')
\documentclass{beamer}
\title{Programování 1: Standardní knihovna}
\title{Programování 1.12: Standardní knihovna}
\input ../slidemac.tex
......
Markdown is supported
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