Skip to content

Commit a7e6b80

Browse files
committed
feat: Transform Markdown to ipynb
1 parent 337d3c8 commit a7e6b80

13 files changed

Lines changed: 592 additions & 354 deletions

020-Projekt_Taschenrechner/000-Einleitung.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ einfache arithmetische Operationen unterstützen.
3333
```
3434

3535
In diesem Kapitel machen Sie Ihre ersten Schritte mit Python. Sie erlernen den
36-
Umgang mit der sog. [REPL](./010-Python_REPL.md), nutzen Python für
36+
Umgang mit der sog. [REPL](./010-Python_REPL.ipynb), nutzen Python für
3737
grundlegende Berechnungen und schreiben Python-Code in
38-
[`.py`-Dateien](./030-Python_Code_Dateien.md) und [Juypter Notebooks
39-
(`.ipynb`)](./040-Jupyter_Notebooks.md) und lernen die damit verbundenen
38+
[`.py`-Dateien](./030-Python_Code_Dateien.ipynb) und [Juypter Notebooks
39+
(`.ipynb`)](./040-Jupyter_Notebooks.ipynb) und lernen die damit verbundenen
4040
unterschiedlichen Ausführungsformen von Python-Code. Dann erlernen Sie die
4141
Erstellung eines [ausführbaren Skripts](./050-Ausführbare_Skripte.md) in Python
4242
und bringen dann alles gelernte im
43-
[Taschenrechner](./060-Taschenrechner.md)-Programm zusammen. Das Kapitel
43+
[Taschenrechner](./060-Taschenrechner.ipynb)-Programm zusammen. Das Kapitel
4444
schließt mit einer Aufgabe zur [Erweiterung des
4545
Taschenrechners](./070-Aufgabe_Erweiterung.md) um verschiedene
4646
Funktionalitäten.
Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"id": "ba0180d5",
6+
"metadata": {
7+
"editable": true,
8+
"jp-MarkdownHeadingCollapsed": true,
9+
"slideshow": {
10+
"slide_type": ""
11+
},
12+
"tags": []
13+
},
14+
"source": [
15+
"---\n",
16+
"short_title: REPL\n",
17+
"numbering:\n",
18+
" heading_1: true\n",
19+
" heading_2: true\n",
20+
" title: true\n",
21+
" figure:\n",
22+
" template: Abb. %s\n",
23+
"---\n",
24+
"\n",
25+
"# Die Read-Eval-Print-Loop (REPL)\n",
26+
"\n",
27+
"Im Kapitel zur Installation haben Sie einmal `python3 --version` im Terminal\n",
28+
"ausgeführt um sicherzustellen, dass Sie ein aktuelles und funktionierendes\n",
29+
"Python installiert haben. Nun machen Sie die ersten Schritte mit Python Code.\n",
30+
"\n",
31+
"## Starten der Python REPL\n",
32+
"\n",
33+
":::::{margin}\n",
34+
"::::{admonition} Wiederholung\n",
35+
":class: seealso\n",
36+
"Im gesamten Kurs werden Eingaben im Terminal wie folgt dargestellt:\n",
37+
":::console\n",
38+
"$ echo \"Hallo Welt\"\n",
39+
"Hallo Welt\n",
40+
":::\n",
41+
"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+
"\n",
43+
"Achten Sie darauf, dass Sie ggf. Dateipfade anpassen müssen. Mehr dazu im [Exkurs: Unix](/030-Exkurs_Unix/Einleitung.md).\n",
44+
"::::\n",
45+
":::::\n",
46+
"\n",
47+
"Führen Sie das Programm `python3` im Terminal aus, so startet es in die REPL.\n",
48+
"\n",
49+
"```console\n",
50+
"$ python3\n",
51+
"Python 3.13.7 (main, Aug 14 2025, 11:12:11) [Clang 17.0.0 (clang-1700.0.13.3)] on darwin\n",
52+
"Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n",
53+
">>>\n",
54+
"```\n",
55+
"\n",
56+
"Um die REPL zu verlassen, tippen Sie `quit()` oder nutzen Sie (in Unix-basierten Betriebssysteme) die Tastekombination `<Strg-D>`.\n",
57+
"\n",
58+
"## Ihr erstes Python\n",
59+
"\n",
60+
"Die REPL verhält sich ähnlich zum Terminal, nur dass nicht Befehle nach (typischerweise) einem `$ ` eingegeben werden, sondern dass Python-Code nach einem `>>> ` eingegeben wird.\n",
61+
"\n",
62+
"Nachfolgend finden Sie ein paar Beispiele. Probieren Sie diese selbst aus und ändern Sie sie dann ab.\n",
63+
"\n",
64+
"```python-repl\n",
65+
">>> 2+2\n",
66+
"4\n",
67+
"```\n",
68+
"\n",
69+
"```python-repl\n",
70+
">>> \"Hallo, Welt!\"\n",
71+
"'Hallo, Welt!\"\n",
72+
"```\n",
73+
"\n",
74+
"```python-repl\n",
75+
">>> print(\"Hallo, Welt!\")\n",
76+
"Hallo, Welt!\n",
77+
"```\n",
78+
"\n",
79+
"Ist der Python-Code noch nicht vollständig, so verändert sich der Prompt zu `... `.\n",
80+
"\n",
81+
"```python-repl\n",
82+
">>> print(\n",
83+
"...\n",
84+
"... \"Hallo\"\n",
85+
"... )\n",
86+
"Hallo\n",
87+
"```\n",
88+
"\n",
89+
"## Die Struktur einer REPL\n",
90+
"\n",
91+
"Eine REPL ist ein Programm, welches:\n",
92+
"\n",
93+
"1. _**R**ead_: Einen Befehl oder hier ein Stück Python-Code einliest.\n",
94+
"2. _**E**val_: Dann den Code ausführt.\n",
95+
"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",
101+
"\n",
102+
"## Lernstandskontrolle\n",
103+
"\n",
104+
"```{code-cell}\n",
105+
":tags: [remove-cell]\n",
106+
"from jupyterquiz import display_quiz\n",
107+
"c = { '--jq-multiple-choice-bg': '#202080',\n",
108+
" '--jq-mc-button-bg': '#fafafa',\n",
109+
" '--jq-mc-button-border': '#e0e0e0e0',\n",
110+
" '--jq-mc-button-inset-shadow': '#555555',\n",
111+
" '--jq-many-choice-bg': '#202080',\n",
112+
" '--jq-numeric-bg': '#202080',\n",
113+
" '--jq-numeric-input-bg': '#c0c0c0',\n",
114+
" '--jq-numeric-input-label': '#101010',\n",
115+
" '--jq-numeric-input-shadow': '#999999',\n",
116+
" '--jq-string-bg': '#202080',\n",
117+
" '--jq-incorrect-color': '#c80202',\n",
118+
" '--jq-correct-color': '#009113',\n",
119+
" '--jq-text-color': '#fafafa',\n",
120+
" '--jq-link-color': '#9abafa' }\n",
121+
"```\n",
122+
"\n",
123+
"```{code-cell}\n",
124+
":tags: [remove-input]\n",
125+
"q = [{\n",
126+
" \"question\": \"Welche Ausgabe erhalten Sie, wenn Sie <pre>>>> 3**3</pre> in die REPL eingeben?\",\n",
127+
" \"type\": \"multiple_choice\",\n",
128+
" \"answers\": [\n",
129+
" { \"code\": \"3**3\", \"correct\": False },\n",
130+
" { \"code\": \"9\", \"correct\": True },\n",
131+
" { \"code\": \"6\", \"correct\": False },\n",
132+
" { \"code\": \"33\", \"correct\": False },\n",
133+
" { \"code\": \"333\", \"correct\": False },\n",
134+
" { \"code\": \"SyntaxError\", \"correct\": False }\n",
135+
" ]\n",
136+
" },\n",
137+
" {\n",
138+
" \"question\": \"Wie können Sie eine Kommazahl in Python eingeben?<br>Probieren Sie auch die falschen Optionen aus. Was ist deren Ergebnis?\",\n",
139+
" \"type\": \"multiple_choice\",\n",
140+
" \"answers\": [\n",
141+
" { \"code\": \"12,34\", \"correct\": False },\n",
142+
" { \"code\": \"12.34\", \"correct\": True },\n",
143+
" { \"code\": \"1234e-2\", \"correct\": True },\n",
144+
" { \"code\": \"123,4e-1\", \"correct\": False },\n",
145+
" ]\n",
146+
" },\n",
147+
" {\n",
148+
" \"question\": \"Welche Ausgabe ergibt die folgende Eingabe in die REPL? Geben die Ausgabe bis zum ersten Leerzeichen ein.<pre>>>> test</pre>\",\n",
149+
" \"type\": \"string\",\n",
150+
" \"answers\": [\n",
151+
" { \"answer\": \"NameError:\", \"correct\": True,\n",
152+
" \"match_case\": False, \"fuzzy_threshold\": 0.9,\n",
153+
" \"feedback\": \"Korrekt. Wie in der Fehlermeldung angegeben ist die Variable `test` nicht definiert, weshalb Sie deren Wert nicht auslesen können.\"},\n",
154+
" ]\n",
155+
" }]\n",
156+
"display_quiz(q, colors=c)\n",
157+
"```"
158+
]
159+
}
160+
],
161+
"metadata": {
162+
"kernelspec": {
163+
"display_name": "Python 3 (ipykernel)",
164+
"language": "python",
165+
"name": "python3"
166+
},
167+
"language_info": {
168+
"codemirror_mode": {
169+
"name": "ipython",
170+
"version": 3
171+
},
172+
"file_extension": ".py",
173+
"mimetype": "text/x-python",
174+
"name": "python",
175+
"nbconvert_exporter": "python",
176+
"pygments_lexer": "ipython3",
177+
"version": "3.13.7"
178+
}
179+
},
180+
"nbformat": 4,
181+
"nbformat_minor": 5
182+
}

020-Projekt_Taschenrechner/010-Python_REPL.md

Lines changed: 0 additions & 153 deletions
This file was deleted.

0 commit comments

Comments
 (0)