-
Notifications
You must be signed in to change notification settings - Fork 0
/
Aufgaben.tex
116 lines (86 loc) · 3.01 KB
/
Aufgaben.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
\documentclass[a4paper, 14 pt]{extarticle}
\usepackage{amsmath, amssymb}
\usepackage{xltxtra}
\usepackage{array, color, enumerate, fixmath, gensymb, graphicx, graphics, icomma, mathcomp, mathtools, minted, multirow, nicefrac, placeins, relsize, rotating, tabularx, titlesec, units, xspace, xtab, lipsum}
\usepackage[math-style=upright]{unicode-math}
% ----Schriften----
\setmathfont{Neo Euler}
\setromanfont[Mapping=tex-text]{Ubuntu}
\setsansfont[Mapping=tex-text]{Ubuntu}
\setmonofont[Scale=1.13]{Ubuntu Mono}
\newfontfamily\titlefamily{Aller Display}
% ----Sprache----
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new, latesthyphen=true]{german}
% ----Seite einstellen----
\setlength{\columnsep}{1 cm}
\setlength{\textwidth}{17 cm}
\setlength{\evensidemargin}{2 cm} %Abstand Text – äußerer Rand
\setlength{\hoffset}{-1 in}
\setlength{\oddsidemargin}{21 cm}
\addtolength{\oddsidemargin}{-\textwidth}
\addtolength{\oddsidemargin}{-\evensidemargin}
\setlength{\voffset}{-1 in}
\setlength{\topmargin}{1.6 cm}
\setlength{\headsep}{0 pt}
\setlength{\headheight}{0 pt}
\setlength{\textheight}{29.7 cm}
\addtolength{\textheight}{-2 \topmargin}
\addtolength{\textheight}{- \headheight}
\addtolength{\textheight}{- \headsep}
%\addtolength{\textheight}{- \footskip}
\hyphenpenalty=500
\pretolerance=150
\tolerance=1500
\setlength{\emergencystretch}{\textwidth}
% \setlength{\parindent}{0pt}
\titleformat*{\section}{\titlefamily\larger[2]}
\titleformat*{\subsection}{\larger[1]}
\setcounter{secnumdepth}{0}
\thispagestyle{empty}
\usemintedstyle{bw}
\newminted{python3}{
% fontsize = \scriptsize,
% linenos, stepnumber = 5,
frame = lines,
framerule = 1pt,
framesep = 8pt,
baselinestretch = 1.2,
numbersep = 8pt,
gobble = 0,
obeytabs, tabsize = 4}
\begin{document}
\section{Übungen}
\vfill
\subsection{Wiederholung zum Warmwerden}
Vergewissere Dich kurz, dass:
\begin{itemize}
\item Generatoren Elemente erst bei Bedarf erzeugen.
\item Generatoren nur einmal genutzt werden können.
\item Generatoren kaum Speicher verbrauchen.
\end{itemize}
\vfill
\subsection{Spaß mit \texttt{next}, \texttt{StopIteration} und \texttt{itertools.chain}}
Schreibe eine Funktion, die einen Generator als Argument nimmt und:
\begin{itemize}
\item falls der Generator nur ein einziges Element generiert:\\
das Element zurückgibt;
\item falls der Generator mehr als ein Element generiert:\\
eine zum Generator äquivalente Iterable zurückgibt\\ (ohne den Generator komplett zu durchlaufen).
\end{itemize}
\vfill
\subsection{Generatorfunktionen und \texttt{yield}}
Ersetze folgende Funktion, die eine Liste zurückgibt,\\ durch eine analoge Generatorfunktion.
\begin{python3code}
def listenbastler():
liste = [42]
for i in range(666):
liste.append(i**2)
liste.extend(range(23))
liste.append(17)
return liste
\end{python3code}
\subsection{Unendliche Generatoren}
Schreibe eine Generatorfunktion, die untentwegt aufwärtszählt.\\
Schaue Dir dabei nicht die Dokumentation von \texttt{itertools.count} an.
\end{document}