|
5 | 5 | "id": "ba0180d5", |
6 | 6 | "metadata": { |
7 | 7 | "editable": true, |
8 | | - "jp-MarkdownHeadingCollapsed": true, |
9 | 8 | "slideshow": { |
10 | 9 | "slide_type": "" |
11 | 10 | }, |
|
18 | 17 | " heading_1: true\n", |
19 | 18 | " heading_2: true\n", |
20 | 19 | " title: true\n", |
21 | | - " figure:\n", |
22 | | - " template: Abb. %s\n", |
23 | 20 | "---\n", |
24 | 21 | "\n", |
25 | 22 | "# Die Read-Eval-Print-Loop (REPL)\n", |
|
31 | 28 | "## Starten der Python REPL\n", |
32 | 29 | "\n", |
33 | 30 | ":::::{margin}\n", |
34 | | - "::::{admonition} Wiederholung\n", |
35 | | - ":class: seealso\n", |
| 31 | + "::::{seealso} Terminal-Nutzung\n", |
36 | 32 | "Im gesamten Kurs werden Eingaben im Terminal wie folgt dargestellt:\n", |
37 | 33 | ":::console\n", |
38 | 34 | "$ echo \"Hallo Welt\"\n", |
39 | 35 | "Hallo Welt\n", |
40 | 36 | ":::\n", |
41 | 37 | "Dabei beginnen Zeilen mit einem Terminal-Befehl mit `$ ` und darauffolgende Zeilen bis zum nächsten `$ ` die Ausgabe des Befehls. Wenn Sie die Schritte nachvollziehen, geben Sie den Befehl selbst ein und 'starten' diesen mit `<Enter>`.\n", |
42 | 38 | "\n", |
| 39 | + "Es werden nicht alle Ausgaben (vollständig) dargestellt.\n", |
| 40 | + "\n", |
43 | 41 | "Achten Sie darauf, dass Sie ggf. Dateipfade anpassen müssen. Mehr dazu im [Exkurs: Unix](/030-Exkurs_Unix/Einleitung.md).\n", |
44 | 42 | "::::\n", |
45 | 43 | ":::::\n", |
|
88 | 86 | "\n", |
89 | 87 | "## Die Struktur einer REPL\n", |
90 | 88 | "\n", |
91 | | - "Eine REPL ist ein Programm, welches:\n", |
| 89 | + "Eine REPL (siehe {numref}`fig:repl`) ist ein Programm, welches:\n", |
92 | 90 | "\n", |
93 | 91 | "1. _**R**ead_: Einen Befehl oder hier ein Stück Python-Code einliest.\n", |
94 | 92 | "2. _**E**val_: Dann den Code ausführt.\n", |
95 | 93 | "3. _**P**rint_: Das Ergebnis des ausgeführten Codes zurück gibt.\n", |
96 | | - "4. _**L**oop_: Und das solange wiederholt, bis es beendet wird (bei Python via `quit()`).\n", |
97 | | - "\n", |
98 | | - "TODO: Abbildung REPL\n", |
99 | | - "\n", |
100 | | - "TODO: genauere Erklärung des Ablaufs von bspw. `print(\"Hallo\")`.\n", |
| 94 | + "4. _**L**oop_: Und das solange wiederholt, bis es beendet wird (bei Python via `quit()`).\n" |
| 95 | + ] |
| 96 | + }, |
| 97 | + { |
| 98 | + "cell_type": "markdown", |
| 99 | + "id": "e38bcd2d-773b-46bd-892a-07d44d9622f2", |
| 100 | + "metadata": { |
| 101 | + "editable": true, |
| 102 | + "slideshow": { |
| 103 | + "slide_type": "" |
| 104 | + }, |
| 105 | + "tags": [] |
| 106 | + }, |
| 107 | + "source": [ |
| 108 | + "::::{figure}\n", |
| 109 | + ":name: fig:repl\n", |
| 110 | + "```mermaid\n", |
| 111 | + "flowchart LR\n", |
101 | 112 | "\n", |
102 | | - "## Lernstandskontrolle\n", |
| 113 | + "start((Start)) --> R[Read]\n", |
| 114 | + "R --> E[Eval]\n", |
| 115 | + "E --> P[Print]\n", |
| 116 | + "P --> L{Loop<br>?}\n", |
| 117 | + "L -->|yes| R\n", |
| 118 | + "L -->|no| stop((Stop))\n", |
| 119 | + "```\n", |
103 | 120 | "\n", |
104 | | - "```{code-cell}\n", |
105 | | - ":tags: [remove-cell]\n", |
| 121 | + "Ablaufdiagramm der Bestandteile einer REPL\n", |
| 122 | + "::::" |
| 123 | + ] |
| 124 | + }, |
| 125 | + { |
| 126 | + "cell_type": "markdown", |
| 127 | + "id": "c0730c44-1c2a-439d-a146-00d8d3e37307", |
| 128 | + "metadata": { |
| 129 | + "editable": true, |
| 130 | + "slideshow": { |
| 131 | + "slide_type": "" |
| 132 | + }, |
| 133 | + "tags": [] |
| 134 | + }, |
| 135 | + "source": [ |
| 136 | + "TODO: genauere Erklärung des Ablaufs von bspw. `print(\"Hallo\")`." |
| 137 | + ] |
| 138 | + }, |
| 139 | + { |
| 140 | + "cell_type": "markdown", |
| 141 | + "id": "099f1f56-f189-4be3-8a58-e888507e9169", |
| 142 | + "metadata": { |
| 143 | + "editable": true, |
| 144 | + "slideshow": { |
| 145 | + "slide_type": "" |
| 146 | + }, |
| 147 | + "tags": [] |
| 148 | + }, |
| 149 | + "source": [ |
| 150 | + "## Lernstandskontrolle" |
| 151 | + ] |
| 152 | + }, |
| 153 | + { |
| 154 | + "cell_type": "code", |
| 155 | + "execution_count": null, |
| 156 | + "id": "1281feb0-3f98-4346-bc83-76223658319f", |
| 157 | + "metadata": { |
| 158 | + "editable": true, |
| 159 | + "slideshow": { |
| 160 | + "slide_type": "" |
| 161 | + }, |
| 162 | + "tags": [ |
| 163 | + "remove-cell" |
| 164 | + ] |
| 165 | + }, |
| 166 | + "outputs": [], |
| 167 | + "source": [ |
106 | 168 | "from jupyterquiz import display_quiz\n", |
107 | 169 | "c = { '--jq-multiple-choice-bg': '#202080',\n", |
108 | 170 | " '--jq-mc-button-bg': '#fafafa',\n", |
|
117 | 179 | " '--jq-incorrect-color': '#c80202',\n", |
118 | 180 | " '--jq-correct-color': '#009113',\n", |
119 | 181 | " '--jq-text-color': '#fafafa',\n", |
120 | | - " '--jq-link-color': '#9abafa' }\n", |
121 | | - "```\n", |
122 | | - "\n", |
123 | | - "```{code-cell}\n", |
124 | | - ":tags: [remove-input]\n", |
| 182 | + " '--jq-link-color': '#9abafa' }" |
| 183 | + ] |
| 184 | + }, |
| 185 | + { |
| 186 | + "cell_type": "code", |
| 187 | + "execution_count": null, |
| 188 | + "id": "1ee1c360-0a38-42ef-a11c-316edd98c058", |
| 189 | + "metadata": { |
| 190 | + "editable": true, |
| 191 | + "slideshow": { |
| 192 | + "slide_type": "" |
| 193 | + }, |
| 194 | + "tags": [ |
| 195 | + "remove-input" |
| 196 | + ] |
| 197 | + }, |
| 198 | + "outputs": [], |
| 199 | + "source": [ |
125 | 200 | "q = [{\n", |
126 | 201 | " \"question\": \"Welche Ausgabe erhalten Sie, wenn Sie <pre>>>> 3**3</pre> in die REPL eingeben?\",\n", |
127 | 202 | " \"type\": \"multiple_choice\",\n", |
|
153 | 228 | " \"feedback\": \"Korrekt. Wie in der Fehlermeldung angegeben ist die Variable `test` nicht definiert, weshalb Sie deren Wert nicht auslesen können.\"},\n", |
154 | 229 | " ]\n", |
155 | 230 | " }]\n", |
156 | | - "display_quiz(q, colors=c)\n", |
157 | | - "```" |
| 231 | + "display_quiz(q, colors=c)" |
158 | 232 | ] |
159 | 233 | } |
160 | 234 | ], |
|
0 commit comments