Skip to content

Commit 5143a8b

Browse files
committed
feat: Clean up notebook and add REPL diagram
1 parent a7e6b80 commit 5143a8b

2 files changed

Lines changed: 236 additions & 83 deletions

File tree

020-Projekt_Taschenrechner/010-Python_REPL.ipynb

Lines changed: 95 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
"id": "ba0180d5",
66
"metadata": {
77
"editable": true,
8-
"jp-MarkdownHeadingCollapsed": true,
98
"slideshow": {
109
"slide_type": ""
1110
},
@@ -18,8 +17,6 @@
1817
" heading_1: true\n",
1918
" heading_2: true\n",
2019
" title: true\n",
21-
" figure:\n",
22-
" template: Abb. %s\n",
2320
"---\n",
2421
"\n",
2522
"# Die Read-Eval-Print-Loop (REPL)\n",
@@ -31,15 +28,16 @@
3128
"## Starten der Python REPL\n",
3229
"\n",
3330
":::::{margin}\n",
34-
"::::{admonition} Wiederholung\n",
35-
":class: seealso\n",
31+
"::::{seealso} Terminal-Nutzung\n",
3632
"Im gesamten Kurs werden Eingaben im Terminal wie folgt dargestellt:\n",
3733
":::console\n",
3834
"$ echo \"Hallo Welt\"\n",
3935
"Hallo Welt\n",
4036
":::\n",
4137
"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",
4238
"\n",
39+
"Es werden nicht alle Ausgaben (vollständig) dargestellt.\n",
40+
"\n",
4341
"Achten Sie darauf, dass Sie ggf. Dateipfade anpassen müssen. Mehr dazu im [Exkurs: Unix](/030-Exkurs_Unix/Einleitung.md).\n",
4442
"::::\n",
4543
":::::\n",
@@ -88,21 +86,85 @@
8886
"\n",
8987
"## Die Struktur einer REPL\n",
9088
"\n",
91-
"Eine REPL ist ein Programm, welches:\n",
89+
"Eine REPL (siehe {numref}`fig:repl`) ist ein Programm, welches:\n",
9290
"\n",
9391
"1. _**R**ead_: Einen Befehl oder hier ein Stück Python-Code einliest.\n",
9492
"2. _**E**val_: Dann den Code ausführt.\n",
9593
"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",
101112
"\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",
103120
"\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": [
106168
"from jupyterquiz import display_quiz\n",
107169
"c = { '--jq-multiple-choice-bg': '#202080',\n",
108170
" '--jq-mc-button-bg': '#fafafa',\n",
@@ -117,11 +179,24 @@
117179
" '--jq-incorrect-color': '#c80202',\n",
118180
" '--jq-correct-color': '#009113',\n",
119181
" '--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": [
125200
"q = [{\n",
126201
" \"question\": \"Welche Ausgabe erhalten Sie, wenn Sie <pre>>>> 3**3</pre> in die REPL eingeben?\",\n",
127202
" \"type\": \"multiple_choice\",\n",
@@ -153,8 +228,7 @@
153228
" \"feedback\": \"Korrekt. Wie in der Fehlermeldung angegeben ist die Variable `test` nicht definiert, weshalb Sie deren Wert nicht auslesen können.\"},\n",
154229
" ]\n",
155230
" }]\n",
156-
"display_quiz(q, colors=c)\n",
157-
"```"
231+
"display_quiz(q, colors=c)"
158232
]
159233
}
160234
],

0 commit comments

Comments
 (0)