Skip to content

Commit 45f6700

Browse files
committed
feat: Cleanup, formatting, typos and and small clarifications
1 parent be58f72 commit 45f6700

11 files changed

Lines changed: 431 additions & 169 deletions

020-Projekt_Taschenrechner/000-Einleitung.md

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,27 +25,35 @@ In diesem Kapitel erlernen Sie, …
2525
```{hint} 📝 Kleine Aufgabe 1
2626
:icon: false
2727
28-
Die [Aufgabe am Ende des Kapitels](./070-Aufgabe_Erweiterung) kann als Kleine Aufgabe abgegeben werden.
28+
Die [Aufgabe am Ende des Kapitels](./070-Aufgabe_Erweiterung) kann als Kleine
29+
Aufgabe abgegeben werden.
30+
2931
```
3032

3133
```{hint} 📝 Kleine Aufgabe 2
3234
:icon: false
3335
34-
Protokollieren Sie Ihre Nutzung des Kurses. Formulieren Sie, wie Sie an Aufgaben herangegangen sind und wo Sie Probleme hatten.
36+
Protokollieren Sie Ihre Nutzung des Kurses. Formulieren Sie, wie Sie an
37+
Aufgaben herangegangen sind und wo Sie Probleme hatten.
3538
3639
- Welche Informationen haben Ihnen wo gefehlt?
37-
- Haben Sie die Informationen selbst recherchieren können oder sind Sie "stecken geblieben"?
40+
- Haben Sie die Informationen selbst recherchieren können oder sind Sie
41+
"stecken geblieben"?
3842
- Wo ging es Ihrer Meinung nach zu schnell? Wo zu langsam?
39-
- Der Kurs übergeht (teilw. absichtlich) bestimmte Details. Sind Ihnen diese Sprünge aufgefallen und war das schlimm?
43+
- Der Kurs übergeht (teilw. absichtlich) bestimmte Details. Sind Ihnen diese
44+
Sprünge aufgefallen und war das schlimm?
45+
46+
Arbeiten Sie die ersten Kapitel des Kurses für insg. mindestens 3 Stunden durch
47+
und geben Sie Feedback.
4048
41-
Arbeiten Sie die ersten Kapitel des Kurses für insg. mindestens 3 Stunden durch und geben Sie Feedback.
4249
```
4350

4451
```{note} Projektziel
4552
46-
Ziel des Projekts ist es, einen Taschenrechner zu entwickeln, der Berechnungen
47-
per Standardeingabe einliest und die Berechnungsergebnisse ausgibt. Er soll
48-
einfache arithmetische Operationen unterstützen.
53+
Ziel des Projekts ist es, einen Taschenrechner zu entwickeln, in den die
54+
Nutzer\*in Operatoren und Operanden eingeben kann und welcher dann die
55+
jeweiligen Berechnungsergebnisse ausgibt. Er soll einfache arithmetische
56+
Operationen unterstützen.
4957
5058
```
5159

@@ -61,14 +69,3 @@ und bringen dann alles gelernte im
6169
schließt mit einer Aufgabe zur [Erweiterung des
6270
Taschenrechners](./070-Aufgabe_Erweiterung.md) um verschiedene
6371
Funktionalitäten.
64-
65-
- Mathematische Operationen
66-
- `+`, `-`, `*`, `/`
67-
- `%`, `//`
68-
- `**`
69-
- Zahlen
70-
- `int()`
71-
- `float()`
72-
- `def`
73-
- `import`
74-
- `if __name__=="__main__":`

020-Projekt_Taschenrechner/010-Python_REPL.ipynb

Lines changed: 70 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,15 @@
3434
"$ echo \"Hallo Welt\"\n",
3535
"Hallo Welt\n",
3636
":::\n",
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",
37+
"Dabei beginnen Zeilen mit einem Terminal-Befehl mit `$ ` und darauffolgende\n",
38+
"Zeilen bis zum nächsten `$ ` die Ausgabe des Befehls. Wenn Sie die Schritte\n",
39+
"nachvollziehen, geben Sie den Befehl selbst ein und 'starten' diesen mit\n",
40+
"{kbd}`Enter`.\n",
3841
"\n",
3942
"Es werden nicht alle Ausgaben (vollständig) dargestellt.\n",
4043
"\n",
41-
"Achten Sie darauf, dass Sie ggf. Dateipfade anpassen müssen. Mehr dazu im [Exkurs: Unix](/030-Exkurs_Unix/Einleitung.md).\n",
44+
"Achten Sie darauf, dass Sie ggf. Dateipfade anpassen müssen. Mehr dazu im\n",
45+
"[Exkurs: Unix](/030-Exkurs_Unix/Einleitung.md).\n",
4246
"::::\n",
4347
":::::\n",
4448
"\n",
@@ -51,13 +55,17 @@
5155
">>>\n",
5256
"```\n",
5357
"\n",
54-
"Um die REPL zu verlassen, tippen Sie `quit()` oder nutzen Sie (in Unix-basierten Betriebssysteme) die Tastekombination `<Strg-D>`.\n",
58+
"Um die REPL zu verlassen, tippen Sie `quit()` oder nutzen Sie (in\n",
59+
"Unix-basierten Betriebssysteme) die Tastekombination {kbd}`Strg`+{kbd}`D`.\n",
5560
"\n",
5661
"## Ihr erstes Python\n",
5762
"\n",
58-
"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",
63+
"Die REPL verhält sich ähnlich zum Terminal, nur dass nicht Befehle nach\n",
64+
"(typischerweise) einem \"`$ `\" eingegeben werden, sondern dass Python-Code nach\n",
65+
"einem \"`>>> `\" eingegeben wird.\n",
5966
"\n",
60-
"Nachfolgend finden Sie ein paar Beispiele. Probieren Sie diese selbst aus und ändern Sie sie dann ab.\n",
67+
"Nachfolgend finden Sie ein paar Beispiele. Probieren Sie diese selbst aus und\n",
68+
"ändern Sie sie dann ab.\n",
6169
"\n",
6270
"```python-repl\n",
6371
">>> 2+2\n",
@@ -91,7 +99,8 @@
9199
"1. _**R**ead_: Einen Befehl oder hier ein Stück Python-Code einliest.\n",
92100
"2. _**E**val_: Dann den Code ausführt.\n",
93101
"3. _**P**rint_: Das Ergebnis des ausgeführten Codes zurück gibt.\n",
94-
"4. _**L**oop_: Und das solange wiederholt, bis es beendet wird (bei Python via `quit()`).\n"
102+
"4. _**L**oop_: Und das solange wiederholt, bis es beendet wird (bei Python via\n",
103+
" `quit()`).\n"
95104
]
96105
},
97106
{
@@ -139,16 +148,32 @@
139148
" ```bash\n",
140149
" $ python3\n",
141150
" ```\n",
142-
"2. Python startet, gibt die Versionsinformationen aus und zeigt Ihnen mit dem Prompt `>>> ` an, dass es zum Einlesen eines Python-Ausdrucks bereit ist. Die REPL ist nun im Zustand _Read_.\n",
151+
"2. Python startet, gibt die Versionsinformationen aus und zeigt Ihnen mit dem\n",
152+
" Prompt `>>> ` an, dass es zum Einlesen eines Python-Ausdrucks bereit ist.\n",
153+
" \n",
154+
" Die REPL ist nun im Zustand _Read_.\n",
143155
"3. Sie können nun einen Python-Ausdruck eingeben. Dieser kann `print(\"Hallo\")` sein oder aber auch\n",
144156
" ```\n",
145157
" >>> print(\n",
146158
" ... \"Hallo\"\n",
147159
" ... )\n",
148160
" ```\n",
149-
" Während Sie den Ausdruck eingeben bleibt die REPL im Status _Read_. Haben Sie einen vollständigen Ausdruck eingegeben (Wann ein Ausdruck \"vollständig\" ist lernen Sie später.) und drücken Sie dann die Eingabetaste, so wechselt die REPL in den Zustand _Eval_.\n",
150-
"4. Bei der Evaluation des Python-Ausdrucks versucht der Interpreter, den Code auszuführen. Ist er korrekt (und bezieht sich nur auf Namen(/Variablen), die bereits definiert wurden), so wird der Code ausgeführt. Nachdem der Code ausgeführt wurde wechselt die REPL in den Zustand _Print_ und es wird das **Ergebnis** des gerade ausgeführten Python-Codes gedruckt.\n",
151-
"5. Dann wird in den Zustand _Loop_ gewechselt und überprüft, ob eine Abbruchbedingung erreicht wurde. Ist dies nicht der Fall – soll also wieder von Anfang begonnen werden so wechselt die REPL zurück in den Zustand _Read_ und der Ablauf springt damit zu Schritt 2. Soll die Schleife nicht fortgesetzt werden, so geht die REPL über in den Zustand _Stop_ und der Python-Interpreter wird beendet."
161+
" \n",
162+
" Während Sie den Ausdruck eingeben bleibt die REPL im Status _Read_. Haben\n",
163+
" Sie einen vollständigen Ausdruck eingegeben (Wann ein Ausdruck \"vollständig\"\n",
164+
" ist lernen Sie später.) und drücken Sie dann die Eingabetaste, so wechselt\n",
165+
" die REPL in den Zustand _Eval_.\n",
166+
"4. Bei der Evaluation des Python-Ausdrucks versucht der Interpreter, den Code\n",
167+
" auszuführen. Ist er korrekt (und bezieht sich nur auf Namen(/Variablen), die\n",
168+
" bereits definiert wurden), so wird der Code ausgeführt. Nachdem der Code\n",
169+
" ausgeführt wurde wechselt die REPL in den Zustand _Print_ und es wird das\n",
170+
" **Ergebnis** des gerade ausgeführten Python-Codes gedruckt.\n",
171+
"5. Dann wird in den Zustand _Loop_ gewechselt und überprüft, ob eine\n",
172+
" Abbruchbedingung erreicht wurde. Ist dies nicht der Fall – soll also wieder\n",
173+
" von Anfang begonnen werden so wechselt die REPL zurück in den Zustand _Read_\n",
174+
" und der Ablauf springt damit zu Schritt 2. Soll die Schleife nicht fortgesetzt\n",
175+
" werden, so geht die REPL über in den Zustand _Stop_ und der Python-Interpreter\n",
176+
" wird beendet."
152177
]
153178
},
154179
{
@@ -173,7 +198,9 @@
173198
"**Nachvollziehen der Zustände der REPL**\n",
174199
"::::{admonition} 💪 Übung\n",
175200
":icon: false\n",
176-
"Nachvollziehen Sie die nachfolgende REPL-Interaktion. Was sind Ausgaben per `print` und was sind Ausgaben durch den Zustand _Print_ der REPL?\n",
201+
"\n",
202+
"Nachvollziehen Sie die nachfolgende REPL-Interaktion. Was sind Ausgaben per\n",
203+
"`print` und was sind Ausgaben durch den Zustand _Print_ der REPL?\n",
177204
"\n",
178205
"```python-repl\n",
179206
">>> hallo = \"Hallo Python-Lernende\" # 1\n",
@@ -187,30 +214,53 @@
187214
"```\n",
188215
"\n",
189216
":::{dropdown} ✅ Lösung\n",
190-
"_**zu 1:**_ Hier wird eine Variable mit dem Namen `hallo` erzeugt in der das String-Literal `\"Hallo Python-Lernende\"` gespeichert wird. Dieser Ausdruck hat kein Ergebnis, weshalb nach der Zeile sofort der Prompt für die nächste Eingabe angezeigt wird.\n",
191217
"\n",
192-
"_**zu 2:**_ Hier besteht der Python-Ausdruck nur aus der Variablen mit dem Namen `hallo`. Eine Variable hat ihren Wert als Ergebnis, weshalb im Zustand _Print_ der REPL das String-Literat `'Hallo Python-Lernende'` ausgegeben wird (siehe _**3**_).\n",
218+
"_**zu 1:**_ Hier wird eine Variable mit dem Namen `hallo` erzeugt in der das\n",
219+
"String-Literal `\"Hallo Python-Lernende\"` gespeichert wird. Dieser Ausdruck hat\n",
220+
"kein Ergebnis, weshalb nach der Zeile sofort der Prompt für die nächste Eingabe\n",
221+
"angezeigt wird.\n",
222+
"\n",
223+
"_**zu 2:**_ Hier besteht der Python-Ausdruck nur aus der Variablen mit dem\n",
224+
"Namen `hallo`. Eine Variable hat ihren Wert als Ergebnis, weshalb im Zustand\n",
225+
"_Print_ der REPL das String-Literat `'Hallo Python-Lernende'` ausgegeben wird\n",
226+
"(siehe _**3**_).\n",
193227
"\n",
194-
"Beachten Sie, dass in Python Strings entweder mit `'` oder mit `\"` umschlossen werden können. Sie sind gleichwertig und die Verwendung ist nur relevant, wenn der String selbst ein `'` oder ein `\"` enthält. Der String `\"Wie geht's?\"` müssten mit einfachen Anführungszeichen mit Hilfe eines sog. Escape-Zeichens geschrieben werden: `'Wie geht\\'s?'`. Anders herum wäre es bei diesem String: `\"Sie sagte: \\\"Hallo.\\\"\"` bzw. `'Sie sagte: \"Hallo.\"'`.\n",
228+
"Beachten Sie, dass in Python Strings entweder mit `'` oder mit `\"` umschlossen\n",
229+
"werden können. Sie sind gleichwertig und die Verwendung ist nur relevant, wenn\n",
230+
"der String selbst ein `'` oder ein `\"` enthält. Der String `\"Wie geht's?\"`\n",
231+
"müssten mit einfachen Anführungszeichen mit Hilfe eines sog. Escape-Zeichens\n",
232+
"geschrieben werden: `'Wie geht\\'s?'`. Anders herum wäre es bei diesem String:\n",
233+
"`\"Sie sagte: \\\"Hallo.\\\"\"` bzw. `'Sie sagte: \"Hallo.\"'`.\n",
195234
"\n",
196-
"_**zu 4:**_ Hier wird die Funktion `print()` genutzt um den Wert der Variablen `hallo` zu drucken. Dies geschieht im Zustand _Eval_ und die Ausgabe dazu ist in _**5**_ zu sehen. Die Funktion `print()` hat selbst kein Ergebnis, weshalb nichts zusätzliches durch den Zustand _Print_ ausgegeben wird.\n",
235+
"_**zu 4:**_ Hier wird die Funktion `print()` genutzt um den Wert der Variablen\n",
236+
"`hallo` zu drucken. Dies geschieht im Zustand _Eval_ und die Ausgabe dazu ist\n",
237+
"in _**5**_ zu sehen. Die Funktion `print()` hat selbst kein Ergebnis, weshalb\n",
238+
"nichts zusätzliches durch den Zustand _Print_ ausgegeben wird.\n",
239+
"\n",
240+
"_**zu 6:**_ In diesem Schritt wird wie beim ersten Beispiel die Funktion\n",
241+
"`print()` mit einem String-Literal genutzt. Die Ausgabe in _**7**_ ist von der\n",
242+
"Version, die die Variable `hallo` nutzt nicht zu unterscheiden.\n",
197243
"\n",
198-
"_**zu 6:**_ In diesem Schritt wird wie beim ersten Beispiel die Funktion `print()` mit einem String-Literal genutzt. Die Ausgabe in _**7**_ ist von der Version, die die Variable `hallo` nutzt nicht zu unterscheiden.\n",
199244
"::: \n",
200245
"\n",
201-
":::: \n"
246+
":::: \n",
247+
"\n"
202248
]
203249
},
204250
{
205251
"cell_type": "markdown",
206252
"id": "4a49e5c5-3f23-4f83-9a51-3ab4f70db039",
207253
"metadata": {},
208254
"source": [
209-
"\n",
210255
":::{hint} Kommentare in Python-Code\n",
211-
"Die Zahlen am Ende eines Ausdrucks (bspw. `# 1`) sind ein Kommentar, um in der Musterlösung einzelne Zeilen referenzieren zu können.\n",
212256
"\n",
213-
"In Python beginnen Kommentare mit einem `#` und es wir alles bis zum Zeilenende vom Interpreter ignoriert. Kommentare sind für Menschen, die den Code lesen gedacht und nicht für den Computer.\n",
257+
"Die Zahlen am Ende eines Ausdrucks (bspw. `# 1`) sind ein Kommentar, um in der\n",
258+
"Musterlösung einzelne Zeilen referenzieren zu können.\n",
259+
"\n",
260+
"In Python beginnen Kommentare mit einem `#` und es wir alles bis zum Zeilenende\n",
261+
"vom Interpreter ignoriert. Kommentare sind für Menschen, die den Code lesen\n",
262+
"gedacht und nicht für den Computer.\n",
263+
"\n",
214264
"::: \n",
215265
"\n",
216266
"\n"

0 commit comments

Comments
 (0)