diff --git a/python/python.ipynb b/python/python.ipynb
index 463dbcfd..2a781668 100644
--- a/python/python.ipynb
+++ b/python/python.ipynb
@@ -366,6 +366,30 @@
"c < a < b"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Kurzaufgaben 1, 2 und 3\n",
+ "\n",
+ "1. Definiere die folgenden Variablen mit den angegebenen Werten\n",
+ "- Variable t , Wert: 0.5\n",
+ "- Variable h_i, Wert: 10\n",
+ "- Variable v_i, Wert: 0.75\n",
+ "- Variable a_i, Wert: -9.81\n",
+ "\n",
+ "2. Berechne mit den obigen Werten die Höhe h,\n",
+ " Geschwindigkeit v und Beschleunigung a\n",
+ " zum Zeitpunkt t=0.5 eines fallenden Objekts.\n",
+ " Speichert die Ergebnisse in entsprechenden \n",
+ " Variablen h, v, a. \n",
+ "\n",
+ "3. Prüfe, ob das Objekt bereits über einen Meter gefallen ist.\n",
+ "\n",
+ "\n",
+ "Die Lösungen für die Kurzaufgaben sind am Ende dieser Datei."
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},
@@ -503,6 +527,15 @@
"print(a)"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Kurzaufgaben 4\n",
+ "4. Nutze die `print`-Funktion, um die gegebenen Startwerte \n",
+ "und die Ergebnisse der letzten Kurzaufgabe mit Überschriften zu versehen und auszugeben."
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},
@@ -530,7 +563,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Listen können mit `[]` indiziert werdern"
+ "Listen können mit `[]` indiziert werden"
]
},
{
@@ -662,7 +695,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Mit `in` wird überprüft ob ein Wert in der Liste ist:"
+ "Mit `in` wird überprüft, ob ein Wert in der Liste ist:"
]
},
{
@@ -758,6 +791,24 @@
"tup[1] = 7"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Kurzaufgaben 5\n",
+ "\n",
+ "5. Definiere eine Liste mit Namen T, die 3 Werte 0.5, 1 und 1.5 enthält\n",
+ " Definiere drei leere Listen mit den Namen H, V und A\n",
+ " Berechne für jede der drei Zeiten wie zuvor die Höhe, Geschwindigkeit\n",
+ " und Strecke, jedoch indem du\n",
+ " \n",
+ " a) die Werte aus der Liste T verwendest (T[i] für das entsprechende i)\n",
+ " b) die Ergebnisse an die zugehörige Liste anhängst\n",
+ " \n",
+ " \n",
+ " Gib die Listen H, V, A mit der `print`-Funktion aus\n"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},
@@ -848,6 +899,22 @@
"data"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Kurzaufgaben 6 und 7\n",
+ "\n",
+ "6. Speichere die zuvor erstellten Listen in einem Dictionary mit dem Namen \n",
+ "data mit den keys t, h, v und a. \n",
+ "Gib das Dictionary mit der `print`-Funktion aus. \n",
+ "\n",
+ "7. Greife auf die folgenden Werte im Dictionary zu:\n",
+ "- der zweite Wert von t\n",
+ "- der erste Wert von v\n",
+ "- der letzte Wert von h\n"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},
@@ -1199,7 +1266,7 @@
"\n",
"Vorteile:\n",
"* Weniger Code\n",
- "* Änderungen nur an einer Stelle notwending"
+ "* Änderungen nur an einer Stelle notwendig"
]
},
{
@@ -1262,6 +1329,26 @@
"factorial(4)"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Kurzaufgaben 8 und 9\n",
+ "\n",
+ "8. Definiere jeweils eine Funktion für die Berechnung von h, v und a \n",
+ "zu einem beliebigen Zeitpunkt t \n",
+ "\n",
+ "9. Erstelle eine neue Liste T mit den Werte 0.25, 0.5, 0.75, 1.0, 1.25 und 1.5.\n",
+ "Und erstelle das Dictionary data erneut für alle Zeitpunkte in T.\n",
+ "Verwende dafür die in 8. erstellten Funktionen.\n",
+ "\n",
+ "Zusatz: Du kannst auch die Listen H, V und A neu erstellen und dafür eine \n",
+ "Schleife verwenden.\n",
+ "\n",
+ "Gib data mit der `print`-Funktion aus.\n",
+ "\n"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},
@@ -1277,7 +1364,7 @@
"Zahlreiche Module sind Teil jeder Python Installation, die sogenannte \"standard library\":\n",
"https://docs.python.org/3/library/\n",
"\n",
- "Weitere Module hast du in deiner `toolbox` Umgebung mit Mamba installiert."
+ "Weitere Module hast du in deiner `toolbox` Umgebung mit Mamba installiert."
]
},
{
@@ -1315,7 +1402,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Den Modulen können mit `as` neue Namen gegeben werden\n",
+ "Den Modulen können mit `as` neue Namen gegeben werden.\n",
"Viele Module haben jedoch Konventionen für den Kurznamen, die du verwenden solltest."
]
},
@@ -1461,7 +1548,7 @@
" - `'\\t'` -> Tab\n",
" - `'\\\\'` -> normales `'\\'`\n",
"\n",
- "Wenn viele `'\\'` geschrieben werden müssen (z.B. in LaTeX-Code), lohnt es sich diese Funktion mit dem Prefix `r` auszuschalten:"
+ "Wenn viele `'\\'` geschrieben werden müssen (z.B. in LaTeX-Code), lohnt es sich diese Funktion mit dem Präfix `r` auszuschalten:"
]
},
{
@@ -1512,6 +1599,25 @@
"print(rf\"\\qty {{ {energy:.4f} }} {{ \\kilo\\joule }}\")"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "jp-MarkdownHeadingCollapsed": true
+ },
+ "source": [
+ "### Kurzaufgaben 10\n",
+ "Nutze eine Schleife über das Dictionary data, um die Daten in Tabellenform auszugeben.\n",
+ "\n",
+ "```\n",
+ "t 0.25 0.50 0.75 1.00 1.25 1.50\n",
+ "h 9.88 9.15 7.80 5.84 3.27 0.09\n",
+ "v -2.27 -4.53 -6.79 -9.06 -11.33 -13.59\n",
+ "a -9.81 -9.81 -9.81 -9.81 -9.81 -9.81\n",
+ "```\n",
+ "Jede Zeile der Tabelle kann dabei durch Verwendung eines f-Strings formatiert werden.\n",
+ "\n"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},
@@ -1625,7 +1731,7 @@
"metadata": {},
"source": [
"## Gerade am Anfang beliebt: `IndentationError`: \n",
- "Die Fehlermeldung gibt die Zeile an in der Fehler auftritt (hier: `line 8`) \n",
+ "Die Fehlermeldung gibt die Zeile an, in der der Fehler auftritt (hier: `line 8`) \n",
"und den Grund für den Fehler, häufig mit Erklärung (hier: `IndentationError: expected an indented block`)."
]
},
@@ -1799,7 +1905,7 @@
"## Komplexer Fehler mit Traceback:\n",
"Wenn an einem Fehler mehrere Funktionen beteiligt sind,\n",
"gibt die Fehlermeldung einen *Traceback* aus.\n",
- "Dieser Fall ist eher die Regel, vorallem, wenn Module verwendet werden.\n",
+ "Dieser Fall ist eher die Regel, vor allem, wenn Module verwendet werden.\n",
"Der *Traceback* zeigt die Reihenfolge aller Funktionsaufrufe, die\n",
"am Ende zu dem Fehler geführt haben mit dem letzten Aufruf ganz unten *(most recent call last)*.\n",
"\n",
@@ -1986,6 +2092,173 @@
"die vorher definiert wurden. Man kann dann interaktiv nach Problemen im Code suchen\n",
"oder wie hier herausfinden wie Code funktioniert."
]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Lösungen für die Kurzaufgaben\n",
+ "\n",
+ "\n",
+ "Lösung zu 1., 2. und 3.
\n",
+ " \n",
+ "```\n",
+ "# 1.\n",
+ "t = 0.5\n",
+ "h_i = 10\n",
+ "v_i = 0.75\n",
+ "a_i = -9.81\n",
+ "\n",
+ "# 2.\n",
+ "h = h_i + v_i * t + 1/2 * a_i * t**2 \n",
+ "v = v_i * t + a_i * t \n",
+ "a = a_i\n",
+ "\n",
+ "# 3.\n",
+ "h < 9\n",
+ "```\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "Lösung zu 4.
\n",
+ " \n",
+ "```\n",
+ "# 4.\n",
+ "print(\"Start...\")\n",
+ "print(\"...höhe\")\n",
+ "print(h_i)\n",
+ "print(\"...geschwindigkeit\")\n",
+ "print(v_i)\n",
+ "print(\"...beschleunigung\")\n",
+ "print(a_i)\n",
+ "\n",
+ "print(\"Nach der Zeit t\")\n",
+ "print(t)\n",
+ "print(\"Höhe\")\n",
+ "print(h)\n",
+ "print(\"Geschwindigkeit\")\n",
+ "print(v)\n",
+ "print(\"Beschleunigung\")\n",
+ "print(a)\n",
+ "\n",
+ "```\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "Lösung zu 5.
\n",
+ " \n",
+ "```\n",
+ "# 5.\n",
+ "T = [0.5, 1, 1.5]\n",
+ "H = []\n",
+ "V = []\n",
+ "A = []\n",
+ "\n",
+ "\n",
+ "H.append(h_i + v_i * T[0] + 1/2 * a_i * T[0]**2)\n",
+ "H.append(h_i + v_i * T[1] + 1/2 * a_i * T[1]**2)\n",
+ "H.append(h_i + v_i * T[2] + 1/2 * a_i * T[2]**2)\n",
+ "\n",
+ "V.append(v_i * T[0] + a_i * T[0])\n",
+ "V.append(v_i * T[1] + a_i * T[1])\n",
+ "V.append(v_i * T[2] + a_i * T[2])\n",
+ "\n",
+ "A.append(a_i)\n",
+ "A.append(a_i)\n",
+ "A.append(a_i)\n",
+ "\n",
+ "print(H)\n",
+ "print(V)\n",
+ "print(A)\n",
+ "```\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "Lösung zu 6. und 7.
\n",
+ " \n",
+ "```\n",
+ "# 6.\n",
+ "data = {\"t\":T, \"h\": H, \"v\": V, \"a\":A}\n",
+ "print(data)\n",
+ "\n",
+ "\n",
+ "# 7.\n",
+ "print(data[\"t\"][1])\n",
+ "print(data[\"v\"][0])\n",
+ "print(data[\"h\"][-1])\n",
+ "\n",
+ "```\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "Lösung zu 8. und 9.
\n",
+ " \n",
+ "```\n",
+ "# 8.\n",
+ "def h(t):\n",
+ " return h_i + v_i * t + 1/2 * a_i * t**2\n",
+ "\n",
+ "\n",
+ "def v(t):\n",
+ " return v_i * t + a_i * t\n",
+ "\n",
+ "\n",
+ "def a(t):\n",
+ " return a_i\n",
+ "\n",
+ "\n",
+ "# 9.\n",
+ "\n",
+ "T = [0.25, 0.5, 0.75, 1.0, 1.25, 1.5]\n",
+ "\n",
+ "# ohne Schleife\n",
+ "data = {\"t\":T, \"h\": [h(T[0]),h(T[1]),h(T[2]),h(T[3]),h(T[4]),h(T[5])],\n",
+ " \"v\": [v(T[0]),v(T[1]),v(T[2]),v(T[3]),v(T[4]),v(T[5])],\n",
+ " \"a\": [a(T[0]),a(T[1]),a(T[2]),a(T[3]),a(T[4]),a(T[5])]}\n",
+ "\n",
+ "print(data)\n",
+ "\n",
+ "\n",
+ "# mit Schleife\n",
+ "H = []\n",
+ "V = []\n",
+ "A = []\n",
+ "\n",
+ "for t in T:\n",
+ " H.append(h(t))\n",
+ " V.append(v(t))\n",
+ " A.append(a(t))\n",
+ "\n",
+ "\n",
+ "data = {\"t\":T, \"h\": H, \"v\": V, \"a\": A}\n",
+ "print(data)\n",
+ "\n",
+ "```\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "Lösung zu 10.
\n",
+ " \n",
+ "```\n",
+ "for k,v in data.items():\n",
+ " print(f\"{k} {v[0]:.2f} {v[1]:.2f} {v[2]:.2f} {v[3]:.2f} {v[4]:.2f} {v[5]:.2f}\")\n",
+ "\n",
+ "# Am Dezimaltrennzeichen ausgerichtet\n",
+ "\n",
+ "for k,v in data.items():\n",
+ " print(f\"{k} {v[0]:6.2f} {v[1]:6.2f} {v[2]:6.2f} {v[3]:6.2f} {v[4]:6.2f} {v[5]:6.2f}\")\n",
+ "```\n",
+ "\n",
+ " \n"
+ ]
}
],
"metadata": {
@@ -2005,7 +2278,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.10.8"
+ "version": "3.12.5"
}
},
"nbformat": 4,