diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 40b29b4..38f1f6b 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -257,17 +257,17 @@ }, "active": "91b08793b1132c55", "lastOpenFiles": [ - "Material/env/lib/python3.12/site-packages/__pycache__/pylab.cpython-312.pyc", - "Material/env/lib/python3.12/site-packages/matplotlib-3.9.2.dist-info/WHEEL", - "Material/env/lib/python3.12/site-packages/matplotlib-3.9.2.dist-info/REQUESTED", - "Material/env/lib/python3.12/site-packages/matplotlib-3.9.2.dist-info/RECORD", - "Material/env/lib/python3.12/site-packages/matplotlib-3.9.2.dist-info/METADATA", - "Material/env/lib/python3.12/site-packages/matplotlib-3.9.2.dist-info/LICENSE", - "Material/env/lib/python3.12/site-packages/matplotlib-3.9.2.dist-info/INSTALLER", - "Material/env/lib/python3.12/site-packages/matplotlib-3.9.2.dist-info", - "Material/env/lib/python3.12/site-packages/mpl_toolkits/mplot3d/tests/__pycache__/test_legend3d.cpython-312.pyc", - "Material/env/lib/python3.12/site-packages/mpl_toolkits/mplot3d/tests/__pycache__/test_axes3d.cpython-312.pyc", - "Material/env/lib/python3.12/site-packages/mpl_toolkits/mplot3d/tests/__pycache__/test_art3d.cpython-312.pyc", + "Material/3.Lösungen_Extended_Applications.slides.html", + "Material/wise_24_25/Folien/3.Lösungen_Extended_Applications.ipynb", + "Material/wise_24_25/Folien/Untitled.ipynb", + "Material/wise_24_25/Folien", + "Material/wise_24_25/lernmaterial/4.NumPy_MatPlotLib.ipynb", + "Material/wise_24_25/lernmaterial/3.Extended_Applications.ipynb", + "Material/wise_24_25/lernmaterial/2.Tutorial.ipynb", + "Material/wise_24_25/lernmaterial/1.Tutorial.ipynb", + "Material/wise_24_25/3.Extended_Applications.ipynb", + "Material/wise_24_25/2.Tutorial.ipynb", + "Material/wise_24_25/1.Tutorial.ipynb", "Material/env/lib/python3.12/site-packages/matplotlib/mpl-data/sample_data/logo2.png", "Material/env/lib/python3.12/site-packages/matplotlib/mpl-data/sample_data/grace_hopper.jpg", "Material/env/lib/python3.12/site-packages/matplotlib/mpl-data/sample_data/Minduka_Present_Blue_Pack.png", diff --git a/Material/3.Lösungen_Extended_Applications.slides.html b/Material/3.Lösungen_Extended_Applications.slides.html new file mode 100644 index 0000000..3b38874 --- /dev/null +++ b/Material/3.Lösungen_Extended_Applications.slides.html @@ -0,0 +1,7797 @@ + + + + + + + +3.Lösungen_Extended_Applications slides + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+ + + diff --git a/Material/wise_24_25/Folien/3.Lösungen_Extended_Applications.ipynb b/Material/wise_24_25/Folien/3.Lösungen_Extended_Applications.ipynb new file mode 100644 index 0000000..14df5b0 --- /dev/null +++ b/Material/wise_24_25/Folien/3.Lösungen_Extended_Applications.ipynb @@ -0,0 +1,334 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c3c41172-0fa4-4542-af74-5912b25dce09", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "# Lösungen Extended Applications" + ] + }, + { + "cell_type": "markdown", + "id": "0200f54c-1416-4e4b-bcb9-fbe781bff590", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Aufgabe\n", + "\n", + "*3 Punkte*\n", + "\n", + "Schreibe einen Generator `square_count` mit einem Eingabeparameter `n`, welcher die Quadratzahlen von $1\\dots n^2$ ausgibt.\n", + "\n", + "Die Aufgabe gibt 0 Punkte, wenn die Funktion `square_count` kein Generator ist!\n", + "\n", + "Hinweis: Bei Eingabe von `5` soll die Ausgabe `1 4 9 16` sein." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b27328c4-e085-4783-8ea8-c45c62b63d9f", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Square Numbers from 0 to 1: 1\n", + "Square Numbers from 0 to 2: 1 4\n", + "Square Numbers from 0 to 3: 1 4 9\n", + "Square Numbers from 0 to 4: 1 4 9 16\n", + "Square Numbers from 0 to 5: 1 4 9 16 25\n" + ] + } + ], + "source": [ + "def square_count(n: int) -> int: \n", + " for i in range(1, n):\n", + " yield i*i\n", + "\n", + "for n in range(2, 7):\n", + " print(f\"Square Numbers from 0 to {n-1}:\", *square_count(n))" + ] + }, + { + "cell_type": "markdown", + "id": "72f74416-f665-475f-a411-aa2ad5a9c257", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Aufgabe\n", + "\n", + "*3 Punkte*\n", + "\n", + "Schreibe einen Generator `naturals`, welcher mit jedem Aufruf die nächste natürliche Zahl ausgibt. (Angefangen mit 1)\n", + "\n", + "- Es sind keine Eingabeparameter notwendig.\n", + "- Ist die Funktion kein generator, wird diese Aufgabe mit 0 Punkten bewertet\n", + "\n", + "*Hinweis*: Orientiere dich an dem Beispiel `faktoriel_gen`" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "e5023e1a-1ab0-42ec-87f2-87c2eee46274", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import types" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "8769a98d-5ec0-407a-9ba0-538daff61597", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1, 2, 3, 4, 5, 6, 7, 8, 9, " + ] + } + ], + "source": [ + "def naturals() -> int:\n", + " curr = 1\n", + " while 1:\n", + " yield curr\n", + " curr += 1\n", + " \n", + "gen: types.GeneratorType = naturals()\n", + "for i in range(1, 10):\n", + " number: int = next(gen)\n", + " print(number, end=', ')" + ] + }, + { + "cell_type": "markdown", + "id": "7514798b-d716-4161-a0b7-a644ac8bc67a", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Aufgabe\n", + "\n", + "*6 Punkte*\n", + "\n", + "Schreiben Sie eine Dataclass `Student`\n", + "\n", + "- Die dataclass soll die Werte `vorname`, `nachname`, `semester` und `mat_nr` speichern, vergebe hierzu selber den !!geeigneten!! Datentypen. Mache dir dazu Gedanken ob es Sinnvoll beispielweise die Semesteranzahl als Float zu speichern.\n", + "\n", + "- importiere aus dem dataclasses modul die Funktion `asdict`, erstelle ein Objekt mit den Werten aus dem Beispielstundent, weiße den rückgabewert aus `asdict` aufgerufen mit dem Beispielstudenten der Variablen `stud` zu.\n", + "\n", + "- Die Aufgabe wird mit 0 Punkten bewertet, wenn `Student` keine dataclass ist!\n", + "\n", + "- Hat einer der Attribute keinen geeigneten Datentypen, führt dies nicht zu Punktabzug bei zwei oder mehr schon." + ] + }, + { + "cell_type": "markdown", + "id": "e6d510b0-1565-489c-9441-1812153a3a9f", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + }, + "tags": [] + }, + "source": [ + "Beispielstudent:\n", + "\n", + "|Attribut|Wert|\n", + "|-|-|\n", + "|vorname|Martin|\n", + "|nachname|Le|\n", + "|mat_nr|520420|\n", + "|semester|5|" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "36bd4680-e75e-4db0-9442-9c62f393608e", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'mat_nr': 520420,\n", + " 'nachname': 'Le',\n", + " 'semester': 5,\n", + " 'vorname': 'Martin'}\n" + ] + } + ], + "source": [ + "from dataclasses import dataclass, asdict\n", + "\n", + "@dataclass\n", + "class Student:\n", + " vorname: str\n", + " nachname: str\n", + " mat_nr: int\n", + " semester: int \n", + "\n", + "student = Student(\n", + " vorname='Martin',\n", + " nachname='Le',\n", + " mat_nr=520420,\n", + " semester=5)\n", + "\n", + "stud = asdict(student)\n", + "\n", + "from pprint import pprint\n", + "pprint(stud, width=1)" + ] + }, + { + "cell_type": "markdown", + "id": "c1471211-26a2-4607-82de-9cc706cfc2fb", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Aufgabe\n", + "\n", + "*6 Punkte*\n", + "\n", + "Gegeben sind zwei Listen `colorn` & `colorv_hex`, welche zueinander Index Sortiert sind.\n", + "\n", + "Schreiben nun eine Dataclass `Color` mit den Attributen `name` & `value` und vergebe geeignete Type Hints.\n", + "\n", + "Erstelle danach eine Liste, welche die Werte aus `colorn` & `colorv_hex` in die Dataclass `Color` umwandeln, und speicher die Liste in der variablen `colors`.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "2abd79b2-2083-422b-a83d-7cd3f03aa82c", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "colorn = ['RED', 'GREEN', 'BLUE', 'YELLOW', 'PURPLE']\n", + "colorv_hex = ['#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#FF00FF']" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "9a82261a-a644-4118-a4f2-e663f10a75bd", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Color(name='RED', value='#FF0000'),\n", + " Color(name='GREEN', value='#00FF00'),\n", + " Color(name='BLUE', value='#0000FF'),\n", + " Color(name='YELLOW', value='#FFFF00'),\n", + " Color(name='PURPLE', value='#FF00FF')]\n" + ] + } + ], + "source": [ + "colors = None\n", + "\n", + "@dataclass\n", + "class Color:\n", + " name: str\n", + " value: str\n", + "\n", + "colors = [Color(n, w) for n, w in zip(colorn, colorv_hex)]\n", + " \n", + "pprint(colors)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Material/wise_24_25/lernmaterial/1.Tutorial.ipynb b/Material/wise_24_25/lernmaterial/1.Tutorial.ipynb new file mode 100644 index 0000000..ed2e9dd --- /dev/null +++ b/Material/wise_24_25/lernmaterial/1.Tutorial.ipynb @@ -0,0 +1,2044 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "92fe3a94-61b2-47f9-9485-02aa8b103d5c", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-e72aa2f84c4b1cb7", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "# 1. Programmierübung: Python Tutorial\n", + "\n", + "
\n", + "
\n", + " Willkommen zur ersten Programmierübung Einführung in Python 3.\n", + "
\n", + " \n", + "
\n", + " \n", + "Python ist eine universelle Programmiersprache, die aufgrund ihrer Einfachheit sehr leicht zu lernen und zu bedienen ist. Die Funktionalität kann durch den Import von Bibliotheken erweitert werden. Im Folgenden werden wir Ihnen zeigen, wie man hier im Jupyter Notebook Python Code ausführen kann. Die grundlegenden Konzepte und Strukturen in Python werden mit Hilfe von externen Quellen gezeigt. Die Übungsaufgaben dienen zum Testen und der Hands-on-Praxis des gelernten Wissens. \n", + "\n", + "In diesem Jupyter Notebook werden die grundlegende Funktionen und Konzepte in Python vorgestellt. Dazu wird es kleine Programmierübungen um das gelernte Wissen in Beispielen anzuwenden. (Objekt Orientierte Programmierung werden wir in diesem Kurs nicht behandeln!)\n", + "\n", + "Das Jupyter Notebook ist in Zellen unterteilt, die durch Boxen gekennzeichnet sind, die einzeln ausgeführt werden können (entweder über `Shift + Enter` oder den `Run`-Knopf). Sie können auch alle Zellen im Notebook ausführen über `Kernel > Restart & Run All` oder dem \"Vorspulen\"-Zeichen.\n", + "\n", + "Bitte beachten Sie, dass alle Zellen im Notebook ein gemeinsamen Workspace nutzen. Das bedeutet, dass Bibliotheken nur einmal importiert werden müssen und dann innerhalb des Notebooks genutzt werden können. Es können jedoch auch Variablen überschrieben werden, wenn diese nicht richtig gekapselt werden (z.B. über Funktionen).\n", + "\n", + "Viel Spaß und Erfolg!\n", + "\n", + "Es gibt _sehr_ viele weitere Python-Tutorials online, z.B. auf [Youtube](https://youtu.be/kqtD5dpn9C8), mit denen Sie die benötigten Grundlagen für Python lernen können.\n", + "\n", + "Wenn Sie Fragen oder Verbesserungsvorschläge zum Inhalt oder Struktur der Notebooks haben, dann können Sie eine E-Mail an Phil Keier([p.keier@hbk-bs.de](mailto:p.keier@hbk-bs.de?subject=[SigSys]%20Feedback%20Programmierübung&)) oder Martin Le ([le@tu-bs.de](mailto:martin.le@tu-bs.de?subject=[SigSys]%20Feedback%20Programmierübung&)) schreiben.\n", + "\n", + "Link zu einem Python Spickzettel: [hier](https://s3.amazonaws.com/assets.datacamp.com/blog_assets/PythonForDataScience.pdf)\n", + "\n", + "Der Großteil des Python-Tutorials stammt aus der Veranstaltung _Deep Learning Lab_ und von [www.python-kurs.eu](https://www.python-kurs.eu/python3_kurs.php) und wurden für _Signale und Systeme_, sowie _Einführung in die Programmierung für Nicht Informatiker_ angepasst.\n", + "\n", + "---\n" + ] + }, + { + "cell_type": "markdown", + "id": "6ac5a9e3-7190-4db6-859b-3cb1511fe29f", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-c8293a61ad8fb19c", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "# Printing\n", + "\n", + "Für viele Anwendungsfälle ist es wichtig, dass der Computer mit uns als Mensch kommunizieren kann. Zu diesem Zweck lernen wir zuerst wie wir eine Ausgabe erzeugen können. Hierzu verwenden wir die Funktion `print()`.\n", + "\n", + "[print()](https://www.w3schools.com/python/ref_func_print.asp) ist eine BuiltIn Funktion, zu diesen später mehr. Es soll aber gesagt sein, dass keinerlei anstrengungen notwendig sind um die Print-Funktion zu verwenden, da Python sie von Haus aus kennt.\n", + "\n", + "## Hello World\n", + "\n", + "Schauen wir uns nun folgend ein einfaches Programm an:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "3733ea3b-12b5-4c1c-9b03-0f1c397babfc", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-5f71f94cf9d603e2", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello World\n" + ] + } + ], + "source": [ + "print(\"Hello World\")" + ] + }, + { + "cell_type": "markdown", + "id": "708d34f1-a479-4277-90e7-14d67a8c688a", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-d49c16a44b1d3984", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Der Teil in den Klammern ist der Wert den wir ausgeben wollen in diesem Fall eine einfache Zeichenkette (auch dazu später mehr).\n", + "\n", + "Damit zu ersten **Aufgabe**: Geben Sie den Text `Hallo Python` aus. *1 Punkt*" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "88b8d4db-6f4c-411c-b8ad-d2d6ca0b427c", + "metadata": { + "editable": true, + "nbgrader": { + "grade": true, + "grade_id": "cell-cd36c0330024bfe5", + "locked": false, + "points": 1, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hallo Python\n" + ] + } + ], + "source": [ + "# BEGIN SOLUTION\n", + "print(\"Hallo Python\")\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "markdown", + "id": "ad8d06df-5d3d-4203-b17c-227a663c8e7b", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-95b07b67b0ede718", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "# Datentypen und Variablen\n", + "\n", + "Python unterstützt verschiedene Datentypen. Zu diesen Zählen :\n", + "1. Integer (Ganze Zahlen) $$\\mathbb{Z} = \\{1,-1,2,-2,3,-3,\\dots\\}$$\n", + "2. Floatings Point Numbers (Fließkommazahlen) $$\\pi = 3.141592653589793$$\n", + "3. Strings (Zeichenketten)\n", + "> \"Ich bin eine Zeichenkette\"\n", + "\n", + "4. Listen\n", + "> [Objekt1, Objekt2, 42]\n", + "\n", + "5. Dictionaries\n", + "> {\"Schlüssel1\": \"Wert1\", \"Schlüssel2\": \"Wert2\",}\n", + "\n", + "6. Sets\n", + "> {\"Wert1\", 7, \"Zeichenkette\"}\n", + "\n", + "7. Tupel\n", + "> (42, 7)" + ] + }, + { + "cell_type": "markdown", + "id": "313d37b0-52ad-4de4-9fc5-0f362bfe7284", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-12a63250c85469f1", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "## Zahlentypen (Floats, Integers)\n", + "\n", + "### Aufgabe 1-1: Zuweisungen von Variablen" + ] + }, + { + "cell_type": "markdown", + "id": "65dae625-2f0b-46d2-803c-c3d6c54000f7", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-782aef1600674714", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Eine Definition und Zuweisung eines Wertes zu einer Variablen erfolgt über den `=` Operator." + ] + }, + { + "cell_type": "markdown", + "id": "fca50dd5-4a56-451a-9a1a-6cbd8d76519a", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-7b71098cec169f0f", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "**Aufgabe** *2 Punkte*: \n", + "\n", + "Definieren Sie zunächst die zwei Variablen `a` und `b` und initialisieren diese mit einem Integerwert ungleich `0`:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d7d24e44-8581-4c5c-a723-83b9f7e418ac", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-7be930fd387f1043", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "scrolled": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "a = 1\n", + "b = -2\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "8cfd850c-02c7-4b32-b20c-e37f5eb4fe8b", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-d44ec6114b65557c", + "locked": true, + "points": 2, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "assert isinstance(a, int)\n", + "assert isinstance(b, int)\n", + "\n", + "assert a != 0\n", + "assert b != 0" + ] + }, + { + "cell_type": "markdown", + "id": "337fbcc5-c960-4206-83d1-605d05a51d5d", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-2f79b7b52775db8b", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "**Aufgabe** *2 Punkte*:\n", + "\n", + "Definieren Sie zwei Variablen `s` und `t` und initialisieren diese mit einem Floatwert ungleich `0`:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "03b7469a-4f59-437f-aa8f-797d200b41a1", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-7d48f9bed0df944d", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "s = 1.5\n", + "t = -2.7\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "45404bbe-2026-491d-9aef-9d3ee8894adf", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-3b426f39262c1e03", + "locked": true, + "points": 2, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "assert isinstance(s, float)\n", + "assert isinstance(t, float)\n", + "\n", + "assert s != 0\n", + "assert t != 0" + ] + }, + { + "cell_type": "markdown", + "id": "5452589d-5997-4e8f-b8bb-363925c6166a", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-8690aecc1748ad4a", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "### Aufgabe 1-2: Operationen auf Zahlen\n", + "\n", + "Aus der Schule sollten die folgenden Grunlegenden Operationen die sich auf Zahlen ausführen lassen bekannt sein:\n", + "\n", + "1. Addition $\\Rightarrow a+b=c$\n", + "2. Subtraktion $\\Rightarrow a-b=c$\n", + "3. Multiplikation $\\Rightarrow a\\cdot b=c$\n", + "4. Division $\\Rightarrow\\frac{a}{b} = c$\n", + "> Teilt man zwei Integer durcheinander werden diese erst in Floats umgewandelt und dann als Float gespeichert: $$10/3=3.3333333333$$\n", + "> Die Integer Division (Ganzzahl Division $\\lfloor\\frac{a}{b}\\rfloor$) (Notiert mit \"//\") zweier Zahlen schneidet den Rest nach dem Komma ab: $$10//3\\equiv 3$$\n", + "\n", + "5. Modulus $\\Rightarrow a\\mod b \\equiv c$\n", + "> \"Teilen mit Rest\" (in Python notiert mit \"%\" hat nichts mit Prozenten zutun) funktioniert genauso wie man die Uhr lesen würde. Ist es 15 Uhr sagt man im Sprachgebrauch 3 Uhr (Mittags). Der Modulus Operator funktioniert genauso. $$15 \\mod 12 \\equiv 3$$\n", + "\n", + "6. Exponentation $\\Rightarrow a^b = c$\n", + "> In Python notiert mit \"a**b\"" + ] + }, + { + "cell_type": "markdown", + "id": "9e408960-4180-4e92-ba88-ebf39441dfa7", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-c4551eabf148e18e", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "**Aufgabe** *2 Punkte*:\n", + "\n", + "Addieren Sie die Werte der Variablen `a` und `b` und speichern Sie das Ergebnis in der Variable `c`:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "6aaa0c05-ae16-4c48-b841-79931dae94bd", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-2ff97153b6652687", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "-1" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# BEGIN SOLUTION\n", + "c = a + b\n", + "# END SOLUTION\n", + "c" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "2fa4d7f2-235d-411e-956c-4ff335705124", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-3ba3833c7220bbb7", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "assert isinstance(c, int)\n", + "### BEGIN HIDDEN TESTS\n", + "assert a + b == c\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "9fccb90e-1f22-46b9-99a1-14b64274ece5", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-f80a3165c27dc297", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "**Aufgabe** *5 Punkte*:\n", + "\n", + "Nutzen Sie die Variablen `a` & `b` und Speichern Sie die Ergebnisse für die Multiplikation, Division, Ganzzahldivision, Exponentiation und den Modulo-Operator in den unten angegebenen Variablen:\n", + "\n", + "\\begin{align}\n", + "m &= a\\cdot b\\\\\n", + "d &= \\frac{a}{b}\\\\\n", + "i &= \\lfloor\\frac{a}{b}\\rfloor\\\\\n", + "e &= a^b\\\\\n", + "r &= a\\; \\textrm{mod}\\; b\n", + "\\end{align}\n", + "\n", + "\n", + "Die Ausführung der anderen arithmetischen Operationen in Python erfolgt analog. Eine Übersicht können Sie [hier](https://www.python-kurs.eu/operatoren.php) entnehmen." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "30ce28b3-b97d-4b3f-bac0-6d01356dcc60", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-3f3640eaf7ee2dd3", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "### BEGIN SOLUTION\n", + "m = a*b\n", + "d = a/b\n", + "i = a//b\n", + "e = a**b\n", + "r = a%b\n", + "### END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "95108d9d-4cba-489b-bdbc-ed5c71316ac8", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-804a957c4a02e824", + "locked": true, + "points": 5, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "### BEGIN HIDDEN TESTS\n", + "assert m == a*b\n", + "assert d == a/b\n", + "assert i == a//b\n", + "assert e == a**b\n", + "assert r == a%b\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "444c4633-9186-497f-88a7-e2ec0013dff4", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-7ac5c4d8e6463b16", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "## Sequentielle Datentypen\n", + "\n", + "Sequentielle Datentypen sind ein wichtiger Bestandteil in der Programmierung. Dazu gehören Listen, Tupel und Strings.\n", + "\n", + "Wichtige Eigenschaften dieser Datentypen sind:\n", + "- Die Elemente von Listen, Strings oder Tupeln sind in einer bestimmten Reihenfolge angeordnet (Diese entspricht der Ordnung in der die Elemente eingefügt worden).\n", + "- Der Zugriff (Lesen und Schreiben) dieser Objekte erfolgt über Indizes (Das erste Element eines Sequentiellen Datentypes ist immer `0`).\n", + "- Zugriff auf Elemente kann auch Rückwärts erfolgen das letzte Element wird dann mit `-1` ausgelesen. \n", + "\n", + "Beispiel für eine Liste:\n", + "`some_list = [\"a\", \"b\", \"c\"]`\n", + "\n", + "Beispiel für ein Tupel:\n", + "`some_tuple = (1, 2, 3)`\n", + "\n", + "Beispiel für ein String:\n", + "`some_string = \"Python ist cool!\"`\n", + "\n", + "### Aufgabe 2-1: Strings\n", + "\n", + "Zeichenketten, Text oder Strings lassen sich in Python mit `'Text'`, `\"Text\"` oder der Funktion `str()` definieren.\n", + "\n", + "**Aufgabe** *2 Punkte*:\n", + "\n", + "Ein String-Objekt (Text) können sie mit Hilfe von `'Some Text'` oder `\"Some Text2\"` definieren. Definieren sie die Variable `text` mit einem beliebigen Text." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "f8028cf5-0dc4-4e72-a98e-3e18705c8c98", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-73a9beb04648359b", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "text = \"Hi Mom, I am on TV!\"\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "7a6832ae-e6c7-4230-b3ca-b1f1f90345fb", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-1677fa4f3b4eec12", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "assert isinstance(text, str)" + ] + }, + { + "cell_type": "markdown", + "id": "8e10cd2a-53dc-485f-bbdd-aa2709574660", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-05f0b0cd1211c396", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Python Strings lassen sich mit verschiedenen mitteln formatieren. Dazu zählt die [format-Funktion](https://www.w3schools.com/python/ref_string_format.asp) \n", + "\n", + "**Aufgabe** *1 Punkte*:\n", + "\n", + "Geben Sie die Variablen `a` & `b` aus Aufgabe 1 im format `\"a = 12 und b = 12\"` (Die Werte sollen dann den Werten aus ihrer Definition entsprechen. 12 ist hier nur ein Beispiel) aus." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "d3efbadb-3c33-40eb-9260-8f8b11faaf75", + "metadata": { + "editable": true, + "nbgrader": { + "grade": true, + "grade_id": "cell-c94a5b5e9f73479e", + "locked": false, + "points": 1, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a = 1 und b = -2\n" + ] + } + ], + "source": [ + "# BEGIN SOLUTION\n", + "print(\"a = {} und b = {}\".format(a, b))\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "markdown", + "id": "d860edba-749c-41c0-827b-0c68ba6fd00a", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-e4c5420224d04f6a", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "### Aufgabe 2-2: Listen \n", + "\n", + "Listen lassen sich mit der Funktion `list()` oder `[]` definieren und können eine \"unendliche\" Menge an Elementen unterschiedlichen Datentyps speichern. Die Liste `[420, \"Hallo Jupyter\", 0.222]` ist eine Korrekt definierte Liste. Im Allgemeinen ist es Ratsam listen mit gleichem Datentyp zu füllen, da dies bei der Verarbeitung zu Problemen führen kann." + ] + }, + { + "cell_type": "markdown", + "id": "51416edc-4c96-437c-a1ff-c458f06c9e8a", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-36d12824040df91e", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "**Aufgabe** *1 Punkte*: \n", + "\n", + "Definieren Sie die Variable `l` und weisen Sie dieser Variable eine Liste mit aufsteigenden Integerwerten von `0` bis `4` zu." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "b361ee09-cd48-4c16-89ea-714ee8ab541f", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-89d74b5c210fc331", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "l = list(range(5))\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "65fcfdb4-58ff-47d3-bebd-d3786a971af2", + "metadata": { + "editable": true, + "nbgrader": { + "grade": true, + "grade_id": "cell-589caab43851d55a", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "### BEGIN HIDDEN TESTS\n", + "assert isinstance(l, list)\n", + "assert l == [0, 1, 2, 3, 4]\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "a6dfba7d-4bb5-4530-bb75-689843a718a8", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-5ca56027cd6a5698", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "**Aufgabe** *1 Punkte*:\n", + "\n", + "Hängen Sie der Liste `l` noch den Wert `42` an.\n", + "\n", + "Hinweis: Nutzen Sie dafür die Methode [.append](https://www.w3schools.com/python/ref_list_append.asp)." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "e39e50dc-3d97-4579-aeb4-04ec2de3dbb3", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-853db222010bee68", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "l.append(42)\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "53000a6c-1187-48b0-b038-129d434cc45a", + "metadata": { + "editable": true, + "nbgrader": { + "grade": true, + "grade_id": "cell-c1aca9603460d1de", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "### BEGIN HIDDEN TESTS\n", + "assert l == [0, 1, 2, 3, 4, 42]\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "4510d2f3-3386-4d33-baa5-1d684ab52370", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-c58e5530e380c09a", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Zugriff auf Elemente eines Sequentiellen Datentypes lassen sich über `[]` realisieren.\n", + "\n", + "Beispiel - Zugriff auf das erste Element einer Liste:" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "id": "259d73e8-eca3-4172-8a0a-1efbbe3b527b", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-cb1b7e8055910efc", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 114, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "l[0]" + ] + }, + { + "cell_type": "markdown", + "id": "bf6d1243-9650-4c27-b3dc-86a2d48b3abc", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-1d8edfe975ed19bf", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "**Aufgabe** *1 Punkte*:\n", + "\n", + "Geben Sie das dritte Element der Liste `l` aus.\n", + "\n", + "Hinweis: Achten Sie darauf das der erste Index immer `0` ist. " + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "id": "358a0b51-3bfa-4e65-9cd4-ee2e7f8bc9d5", + "metadata": { + "editable": true, + "nbgrader": { + "grade": true, + "grade_id": "cell-a386250119dc89fb", + "locked": false, + "points": 1, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "# BEGIN SOLUTION\n", + "print(l[2])\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "markdown", + "id": "2f25fa6d-9a72-464b-ada6-d2630dd03e92", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-0ff369c64d2f8c24", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "**Aufgabe** *1 Punkte*:\n", + "\n", + "Geben Sie das vorletzte Element der Liste `l` aus.\n", + "\n", + "Hinweis: Achten Sie darauf das der letzte Index mit `-1` ausgegeben wird" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "id": "16ec2e20-e28e-41de-8f85-1091e41bb401", + "metadata": { + "editable": true, + "nbgrader": { + "grade": true, + "grade_id": "cell-2394235b49ebb749", + "locked": false, + "points": 1, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4\n" + ] + } + ], + "source": [ + "# BEGIN SOLUTION\n", + "print(l[-2])\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "markdown", + "id": "291522bc-9c4d-4348-b2cb-99f9653168fa", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-c8fe8cb9d2ca1028", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "### Aufgabe 2-3: Dictionaries\n", + "\n", + "Das Dictionary ist ein Datentyp, welcher Schlüssel-Werte-Paare speichert. Dabei wird ein Dictionary mit `dict()` oder `{\"Schlüssel1\": \"Wert1\"}` initalisiert. Wichtig ist hierbei das ein Dictionary nicht mit `{}` initialisiert werden kann da dies die Notation für das **Set** Objekt ist.\n", + "\n", + "**Aufgabe** *1 Punkte*:\n", + "\n", + "Initialisieren Sie die Dictionary Variable `my_dict` mit folgendem Mapping:\n", + "\n", + "| Key | Value |\n", + "|:----|:------|\n", + "| `\"apple\"` | `\"Apfel\"` |\n", + "| `\"banana\"` | `\"Banane\"` |\n", + "| `\"cherry\"` | `\"Kirsche\"` |" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "c17338bb-c6df-493c-9d88-0e9ea36a755d", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-86ce3695bf3f6780", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "### BEGIN SOLUTION\n", + "my_dict = {\"apple\": \"Apfel\", \"banana\": \"Banane\", \"cherry\": \"Kirsche\"}\n", + "### END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "id": "a367442e-2c8c-4d32-8acb-5bccf94d64fb", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-969a9415b60857a8", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "assert isinstance(my_dict, dict)\n", + "### BEGIN HIDDEN TESTS\n", + "assert my_dict == {\"apple\": \"Apfel\", \"banana\": \"Banane\", \"cherry\": \"Kirsche\"}\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "8ec10cc1-4b8b-4b53-b1d1-991d6287abda", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-0f5df3b99a4774ba", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "**Aufgabe** *1 Punkte*:\n", + "\n", + "Fügen Sie nun das Key-Value Paar `\"pear\": \"Birne\"` zu `my_dict` hinzu." + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "id": "d3aac185-2d6e-4b30-b247-89be8aeeab7d", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-ed3cf3b9d6a8ad58", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "### BEGIN SOLUTION\n", + "my_dict[\"pear\"] = \"Birne\"\n", + "### END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "id": "c377ec37-b382-4f83-a9cc-829a44b7682e", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-9735fc9ff4416c4c", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "### BEGIN HIDDEN TESTS\n", + "assert my_dict == {\"apple\": \"Apfel\", \"banana\": \"Banane\", \"cherry\": \"Kirsche\", \"pear\": \"Birne\"}\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "2b3cfdf2-6864-402c-9ded-9fd0c7c489ee", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-957ca6c50c1cfb70", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Für gewisse Anwendungen reicht es nur die Schlüssel (oder Werte) aus einem Dictionary zu haben. Dazu bietet das Dictionary die Funktionen `.keys()` (für eine Liste der Schlüssel) und `.values()` (für eine Liste der Werte).\n", + "\n", + "**Aufgabe** *1 Punkte*:\n", + "\n", + "Geben Sie die nur die Werte des Dictionaries `my_dict` aus." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "03f2c31a-04b4-4dc7-ab00-476cec6922ad", + "metadata": { + "editable": true, + "nbgrader": { + "grade": true, + "grade_id": "cell-f190c63e28ae9e82", + "locked": false, + "points": 1, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dict_values(['Apfel', 'Banane', 'Kirsche'])\n" + ] + } + ], + "source": [ + "### BEGIN SOLUTION\n", + "print(my_dict.values())\n", + "### END SOLUTION" + ] + }, + { + "cell_type": "markdown", + "id": "6e774e49-895b-4bb2-9436-cddb75a3d46d", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-5bd0f8a189d6db1c", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Wichtiger für die meisten Probleme ist die Dictionary Funktion `.items()` diese gibt eine Liste an Tupeln mit den Schlüssel Werte Paaren aus.\n", + "\n", + "**Aufgabe** *1 Punkte*:\n", + "\n", + "Geben Sie die Elemente des Dictionaries `my_dict` mit der Funktion `.items()` aus. " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "a399cf66-43eb-4749-8864-18c5e4202f79", + "metadata": { + "editable": true, + "nbgrader": { + "grade": true, + "grade_id": "cell-03afb00cc074d1ef", + "locked": false, + "points": 1, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dict_items([('apple', 'Apfel'), ('banana', 'Banane'), ('cherry', 'Kirsche')])\n" + ] + } + ], + "source": [ + "### BEGIN SOLUTION\n", + "print(my_dict.items())\n", + "### END SOLUTION" + ] + }, + { + "cell_type": "markdown", + "id": "a8d62b7e-ae53-4bd7-a930-84508c3948f9", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-83b1e45bc901dc68", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "# Funktionen\n", + "\n", + "Mit einigen Funktionen haben wir uns bereits befasst dazu zählen `print()`, `.keys()` und alle weiteren die diesem Schema folgen.\n", + "\n", + "In diesem Kapitel wollen wir uns mit dem Aufbau von Funktionen befassen. Dabei folgt jede Funktion folgendem Aufbaue:\n", + "\n", + "```python\n", + "def some_function_name(param1, param2):\n", + " a = do_something1(param1)\n", + " b = do_something2(a, param2)\n", + " do_something3(b)\n", + " return b\n", + "```\n", + "\n", + "Das `def`-Schlüsselwort leitet die Definition einer Funktion ein, gefolgt von dem Funktionsnamen, den Eingabeparametern der Funktion in runden Klammern und einem Doppelpunkt. Wichtig ist, dass die Anweisungen innerhalb der Funktion eingerückt sein müssen. Das Ergebnis (oder die Ergebnisse) werden mit Hilfe des `return`-Schlüsselworts gekennzeichnet.\n", + "\n", + "**Aufgabe** *1 Punkte*:\n", + "\n", + "Schreibe eine Funktion `successor` die auf jede Eingabe `+1` rechnet." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "1a151db2-617c-48f4-969b-3bafb45b1fd1", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-c6a731a4a13b2bbc", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "def successor(n):\n", + " return n+1\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "id": "615a98b6-139e-485b-874e-d0a70cd22517", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-00693d8d9c92af76", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "### BEGIN HIDDEN TESTS\n", + "assert successor(1) == 2\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "d6f47a61-b692-4f46-8ccc-83af10189f93", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-9c358751403a1986", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "**Aufgabe** *1 Punkte*:\n", + "\n", + "Schreibe eine Funktion `add` mit den Eingabeparametern `a` & `b`, welche die Werte von `a` & `b` miteinander addiert." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "3f101d21-aa1a-4bf3-aadf-bb4e41d8fe12", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-2b72cf583fed9b8c", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "def add(a,b):\n", + " return a+b\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "1d155c26-0875-4a71-8564-a4a0e0e3bb70", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-7a24b5cfd7fc9990", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "### BEGIN HIDDEN TESTS\n", + "assert add(1,2) == 3\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "d77ab363-9fe0-4504-b43b-6f7894666525", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-0fd1dbfed99faa8a", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "# Kontrollstruckturen\n", + "\n", + "## Aufgabe 3-1: Conditionals - If-Else\n", + "\n", + "Um Entscheidungen treffen zu können nutzt man in Python das Kommando `if ` ist der Ausdruck wahr wird der darauf folgende Code ausgeführt.\n", + "\n", + "Liste von möglichen Ausdrücken:\n", + "\n", + "- `a == b` checkt ob die Werte `a` & `b` gleich sind\n", + "- `a != b` checkt ob die Werte `a` & `b` **nicht** gleich sind\n", + "- `a > b` checkt ob der Wert `a` größer als `b` ist (Analog dazu \"größer gleich\" `a >= b`)\n", + "- `a < b` checkt ob der Wert `a` kleiner als `b` ist (Analog dazu \"kleiner gleich\" `a <= b`)\n", + "- `not ` invertiert das Ergebnis des Ausdruckes, also aus einem wahren Ausdruck wird ein falscher und andersherum.\n", + "\n", + "Zur Verkettung von Ausdrücken:\n", + "\n", + "- ` and ` checkt ob die Ausdrücke `ausdruck1` & `ausdruck2` wahr also erfüllt sind\n", + "- ` or ` checkt ob einer der Ausdrücke `ausdruck1` & `ausdruck2` wahr also erfüllt sind\n", + "\n", + "Beispiel:" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "4363cda5-98c5-4424-8fb3-7c92e1994993", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-020d46673782a358", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "You're the Number One\n" + ] + } + ], + "source": [ + "zahl = 1\n", + "if zahl == 1:\n", + " print(\"You're the Number One\")\n", + "\n", + "if zahl == 2:\n", + " print(\"You Lose\")" + ] + }, + { + "cell_type": "markdown", + "id": "21a23914-d0b7-492d-bcfe-8ecde9c20c85", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-aa2d59d677afd5a3", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Das Kommando `else` funktioniert nur zusammen mit dem `if` Kommando und bietet dem Programm eine Art \"Fall Back\":" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "3eaf3062-ae81-48c0-802d-88a72db587be", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-f4124dd62687158f", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "You're not the Number One\n" + ] + } + ], + "source": [ + "zahl = 5\n", + "if zahl == 1:\n", + " print(\"You're the Number One\")\n", + "else:\n", + " print(\"You're not the Number One\")" + ] + }, + { + "cell_type": "markdown", + "id": "7e35f339-3f59-4fd6-a162-e6eb0379c778", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-167fb232c7163fe6", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Um auf mehrere Ausdrücke zu checken kann das `elif` verwendet werden. Es findet seinen Platz zwischen `if` & `else`:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "e37dd53c-e375-4548-9563-c8c6664dfdd0", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-0c0312666fa7648f", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "You're the Number Two\n" + ] + } + ], + "source": [ + "zahl = 2\n", + "if zahl == 1:\n", + " print(\"You're the Number One\")\n", + "elif zahl == 2:\n", + " print(\"You're the Number Two\")\n", + "elif zahl == 2:\n", + " print(\"You're the Number Three\")\n", + "else:\n", + " print(\"You're not the Number One\")" + ] + }, + { + "cell_type": "markdown", + "id": "5248404d-4717-462d-a67f-57431e599945", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-060bd6eb927fa8b1", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "**Aufgabe** *1 Punkte*:\n", + "\n", + "Schreibe eine Funktion `is_odd` mit einem Eingabeparameter `n` die prüft ob die eingegebene Zahl ungerade ist.\n", + "\n", + "Wenn die Zahl gerade ist gebe den Text `\"Gerade Zahl\"` und bei ungerade `\"Ungerade Zahl\"` zurück." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "d4b1cef3-6222-438d-bbc3-243431fad0cb", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-77afd241bc69d6b1", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "def is_odd(n):\n", + " if n % 2 == 0:\n", + " return \"Gerade Zahl\"\n", + " else:\n", + " return \"Ungerade Zahl\"\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "141d73da-90e6-401a-a651-ad14635de5b7", + "metadata": { + "editable": true, + "nbgrader": { + "grade": true, + "grade_id": "cell-d8541ba8c61147c3", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "### BEGIN HIDDEN TESTS\n", + "assert is_odd(2).lower() == \"Gerade Zahl\".lower()\n", + "assert is_odd(3).lower() == \"Ungerade Zahl\".lower()\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "c0086b8c-da02-4fdf-8341-9c0518bb6406", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-69409d8dcfe070e1", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "## Aufgabe 3-2: Sequentielles - While Loop\n", + "\n", + "*7 Punkte*\n", + "\n", + "Schleifen sind wichtig um eine Aufgabe öfter zu wiederholen. \n", + "\n", + "Schauen wir uns dazu zunächst den `while`-loop an. Die Syntax schaut wie folgt aus:\n", + "\n", + "```python\n", + "while :\n", + " do_something()\n", + "```\n", + "\n", + "Solange der Ausdruck nach dem `while` wahr ist wird die Schleife ausgeführt. **!Vorsichtig!** solange der Ausdruck wahr bleibt und nie falsch wird hört die Schleife nie auf zu laufen.\n", + "\n", + "**Aufgabe**: Schreibe eine Funktion `fubar` mit Eingabeparameter `n`.\n", + "Die Funktion soll wie folgt definiert sein:\n", + "\n", + "- Der Eingabeparameter `n` ist ein Integer, Floats geben `False` zurück\n", + "- Negative zahlen & 0 beenden die Funktion und geben `False` zurück\n", + "- Die Funktion zählt bis einschließlich dem Eingabeparameter\n", + " bsp.: $n=9 \\rightarrow 1, 2, 3, \\dots, 9$\n", + "- Bei jedem Schleifendurchlauf soll die Zahl bei der sich die Schleife gerade befindet mittels `print` ausgegeben werden werden.\n", + "- Ist der zurzeitige Schleifendurchlauf durch `3` teilbar, gebe mittels `print` denn String `Foo` aus.\n", + "- Ist der zurzeitige Schleifendurchlauf durch `5` teilbar, gebe mittels `print` denn String `Bar` aus.\n", + "- Ist der zurzeitge Schleifendurrchlauf durch `3 & 5` teilbar, gebe mittels `print` den String `FooBar` aus.\n", + "\n", + "**Tipp**: Implementiere nicht alles aufeinmal sollte Schritt für Schritt und teste deine Lösung nach jedem Schritt.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "d1f074e2-c036-445c-97f6-618f5aa4cedb", + "metadata": { + "editable": true, + "nbgrader": { + "grade": true, + "grade_id": "cell-0796f3b2cbac6f8e", + "locked": false, + "points": 4, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "def fubar(n: int):\n", + " if isinstance(n, float) or n < 1:\n", + " return False\n", + "\n", + " count = 1\n", + " while count <= n:\n", + " msg = count\n", + " if count % 3 == 0:\n", + " msg = \"Foo\"\n", + " if count % 5 == 0:\n", + " msg = \"Bar\"\n", + " if count % 15 == 0:\n", + " msg = \"FooBar\"\n", + " \n", + " count += 1\n", + " print(msg, end=', ')\n", + " \n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "22784528-9205-4575-84ef-0060732cd053", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-f7774d4246e958a6", + "locked": true, + "points": 3, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fubar to 4\n", + "1, 2, Foo, 4, \n", + "Fubar to 6\n", + "1, 2, Foo, 4, Bar, Foo, \n", + "Fubar to 16\n", + "1, 2, Foo, 4, Bar, Foo, 7, 8, Foo, Bar, 11, Foo, 13, 14, FooBar, 16, \n", + "Fubar to 200\n", + "1, 2, Foo, 4, Bar, Foo, 7, 8, Foo, Bar, 11, Foo, 13, 14, FooBar, 16, 17, Foo, 19, Bar, Foo, 22, 23, Foo, Bar, 26, Foo, 28, 29, FooBar, 31, 32, Foo, 34, Bar, Foo, 37, 38, Foo, Bar, 41, Foo, 43, 44, FooBar, 46, 47, Foo, 49, Bar, " + ] + } + ], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "print(\"Fubar to 4\")\n", + "fubar(4)\n", + "print(\"\\nFubar to 6\")\n", + "fubar(6)\n", + "print(\"\\nFubar to 16\")\n", + "fubar(16)\n", + "print(\"\\nFubar to 200\")\n", + "fubar(50)\n", + "### BEGIN HIDDEN TESTS\n", + "assert fubar(-1) == False\n", + "assert fubar(0) == False\n", + "assert fubar(.1) == False\n", + "### END HIDDEN TESTS" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Material/wise_24_25/lernmaterial/2.Tutorial.ipynb b/Material/wise_24_25/lernmaterial/2.Tutorial.ipynb new file mode 100644 index 0000000..0ed1bf0 --- /dev/null +++ b/Material/wise_24_25/lernmaterial/2.Tutorial.ipynb @@ -0,0 +1,1462 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "079afb70-639e-4955-8ca7-1c290cbf08a9", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-7057e40105900012", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "# 2. Programmierübung: Python Tutorial\n", + "\n", + "
\n", + "
\n", + " Willkommen zur ersten Programmierübung Einführung in Python 3.\n", + "
\n", + " \n", + "
\n", + "\n", + "Wenn Sie Fragen oder Verbesserungsvorschläge zum Inhalt oder Struktur der Notebooks haben, dann können sie eine E-Mail an Phil Keier ([p.keier@hbk-bs.de](mailto:p.keier@hbk-bs.de?subject=[SigSys]%20Feedback%20Programmierübung&)) oder Martin Le ([martin.le@tu-bs.de](mailto:martin.le@tu-bs.de?subject=[SigSys]%20Feedback%20Programmierübung&)) schreiben.\n", + "\n", + "Link zu einem Python Spickzettel: [hier](https://s3.amazonaws.com/assets.datacamp.com/blog_assets/PythonForDataScience.pdf)\n", + "\n", + "Der Großteil des Python-Tutorials stammt aus der Veranstaltung _Deep Learning Lab_ und von [www.python-kurs.eu](https://www.python-kurs.eu/python3_kurs.php) und wurde für _Signale und Systeme_, sowie _Einführung in die Programmierung für Nicht Informatiker_ angepasst." + ] + }, + { + "cell_type": "markdown", + "id": "85fd88de-a9ee-4149-8bed-1b8ebc0bbad4", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-26e0f96baeb79aac", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "# Kontrollstruckturen\n", + "\n", + "## Sequentielles - For Loop\n", + "\n", + "Python verwendet eine spezielle Form des 'for-loops' dabei handelt es sich sprachlich um den 'for-each loop'.\n", + "\n", + "Mittlerweile hat jede nennenswerte Programmiersprache das Konzept des 'for-each loops' auf seine Weise implementiert. Python hingegen nutzt diesen als Standard. Sprachen wie JavaScript, C/C++, etc. verwenden standardmässig eine 'Zählschleife', dabei wird meist von '0' angefangen bis zu einem Grenzwert 'n' gezählt.\n", + "\n", + "Ein schönes beispiel bietet hierfür JavaScript:\n", + "\n", + "```js\n", + "for (let i = 0; i < arr.length; i++) {\n", + " // do something\n", + "} \n", + "```\n", + "\n", + "Zu lesen ist dies wie folgt: \"Für ein i mit dem Wert 0 (let i = 0), zähle bis i größer die Länge von Array arr (i < arr.length) und erhöhe nach jedem Schleifendurchlauf den Wert von i um 1 (i++)\"\n", + "\n", + "In Python sehe selbiger Code wie folgt aus:\n", + "\n", + "```python\n", + "for i in range(0,len(arr)):\n", + " # do something\n", + "```\n", + "\n", + "Zu lesen ist dies wie folgt: \"Für jedes (for each) i in dem Intervall/Menge 0 bis arr.length mach etwas\"\n", + "\n", + "Der Unterschied besteht darin das Python jedes Element einer Menge durchläuft, der Catch liegt darin das es absolut unabhängig davon ist wie die Menge aussieht. Widmen wir uns zunächst einer Aufgabe:" + ] + }, + { + "cell_type": "markdown", + "id": "7215a3e7-a240-43ec-914c-10221d8b28b0", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-80add6da9914f961", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "### Aufgabe \n", + "\n", + "*3 Punkte*\n", + "\n", + "Schreibe eine Funktion `sum_up` mit Eingabeparameter `n`, welcher die Zahlen von `1...n` aufsummiert.\n", + "\n", + "Nutze dafür einen `for-loop`.\n", + "\n", + "**Beispiel**:\n", + "\n", + "$$n = 5$$ \n", + "$$sum\\_up(5) \\rightarrow 1 \\rightarrow 1 + 2 = 3 \\rightarrow 3 + 3 = 6 \\rightarrow 6 + 4 = 10 \\rightarrow 10 + 5 = 15$$\n", + "\n", + "Hinweis: die Funktion `range()` zählt standardmässig von `0...n-1`. Schauen Sie sich gerne dazu die offizielle Dokumentation an [PEP 204](https://peps.python.org/pep-0204/#list-ranges)." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "5426ddf1-2d2f-4c92-b007-2f6eca61703f", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-d43ef87a62b03cdf", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "def sum_up(n: int) -> int:\n", + " count = 0\n", + " for i in range(1,n+1):\n", + " count += i\n", + " return count\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "3c38a839-3ab0-466c-98f9-189c35fc5025", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-cff511e86dce0377", + "locked": true, + "points": 3, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "15\n" + ] + } + ], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "print(sum_up(5))\n", + "### BEGIN HIDDEN TESTS\n", + "for n in range(3,12):\n", + " assert sum(range(n+1)) == sum_up(n)\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "4e6dfa94-18b9-4fb2-830a-83202d034752", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-02370acddb67290d", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Nachdem wir nun gelernt haben wie man mit der Built-In Funktion 'range' zählen kann, schauen wir uns folgend ein paar Beispiele an wie in Python eigentlich Iteriert werden soll.\n", + "\n", + "#### Beispiel 1 - Iterieren über eine Liste:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "db89c7c5-6efc-49bb-be92-414a7334ed84", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-dd3ea63dd3b1d927", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "square_numbers = [1,4,9,16,25,36]\n", + "for number in square_numbers:\n", + " print(number)" + ] + }, + { + "cell_type": "markdown", + "id": "6413a239-c334-491e-8062-7f78f75182fe", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-9bc7f123a8fb7680", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "#### Beispiel 2 - Iterieren über ein Dictionary:\n", + "\n", + "Erweitern wir Beispiel 1 und arbeiten nun mit einem Dictionary. Dieses Besteht wie Sie noch aus dem ersten Tutorial Wissen immer aus 'key-value' paaren. Mit der Built-In Funktion `.items()` bekommen wir ein Tuple an Werten zurück, welches erst entpackt werden muss. Dazu behilft uns der 'for-loop' indem einfach 2 variabeln gleichzeitig deklariert werden. (Achtung! Mit `.items()` werden die 'key-value' paare als '(key, value)' zurückgegeben)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "116ce552-a5c0-4c9c-8d89-fe1f3e40bdba", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-72122af8e519273b", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "square_numbers_dict = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36}\n", + "\n", + "for key, value in square_numbers_dict.items():\n", + " print(key, \"->\" , value)" + ] + }, + { + "cell_type": "markdown", + "id": "b4e748de-0603-41c9-8282-86e92923e358", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-52b4d0167c7fb9ba", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "#### Beispiel 3 - Iteration mit Zählen:\n", + "\n", + "Die Built-In Funktion `enumerate()` [PEP 279](https://peps.python.org/pep-0279/) ermöglicht das Zählen und gleichzeitige iterieren über eine Liste.\n", + "Dabei wird wieder ein Tuple zurückgegeben welches die Form '(index, value)' annimmt." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8cbf9142-2cf3-4579-9e19-799ee9b25a54", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-29953c29ed4bcdcf", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "alphabet = [\"a\", \"b\", \"c\", \"d\"]\n", + "for index, buchstabe in enumerate(alphabet):\n", + " print(index, \"->\", buchstabe)" + ] + }, + { + "cell_type": "markdown", + "id": "4add1ce5-e462-4be3-8bd7-9960d86ae780", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-b64ce270167d3025", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Mit den traditionellen Mitteln lässt sich der absolut Selbe Output generieren. Das verwenden von `enumerate()` ist jedoch eleganter:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d2e8274b-00d4-4042-adbf-937aea8f0e7e", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-8b2e3cb4e0c977f2", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "alphabet = [\"a\", \"b\", \"c\", \"d\"]\n", + "for index in range(len(alphabet)):\n", + " print(index, \"->\", alphabet[index])" + ] + }, + { + "cell_type": "markdown", + "id": "b504f072-53ce-4d03-9f72-b4d4ba85ae74", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-5e8d9fc47a709ba4", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "### Aufgabe\n", + "\n", + "*2 Punkte*\n", + "\n", + "Ihnen ist das Dictionary `dict2` gegeben. Ändern Sie jeden Wert in dem Dictionary nach der Formel $f(x) = x^3-1$ mittels `for-loop`.\n", + "\n", + "Tipp: Lassen Sie sich nicht von den Schlüsseln verwirren." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "abd323c0-5e1b-4c14-a65a-9d54a06f3a80", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-0361320c63b2cb03", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "dict2 = {\"a\": 56, 5: 12, \"python\": 9, 3.14: 1.141414}\n", + "### BEGIN SOLUTION\n", + "dict2 = {key: value**3-1 for key, value in dict2.items()}\n", + "### END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "7e0f9ac4-c5d4-44b6-a2fc-db98e2b46356", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-82eec3cba623ab8f", + "locked": true, + "points": 2, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'a': 175615, 5: 1727, 'python': 728, 3.14: 0.48706374396146557}\n" + ] + } + ], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "print(dict2)\n", + "### BEGIN HIDDEN TESTS\n", + "d = {\"a\": 56, 5: 12, \"python\": 9, 3.14: 1.141414}\n", + "d = {key: value**3-1 for key, value in d.items()}\n", + "assert d == dict2\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "ecc21f6a-2ea0-41a0-9e56-04faae5a0fc6", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-9ffa970f1cdac592", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Mit dem Unterstrich `_` als Zählvariable werden `for`-loops gekennzeichnet die ihre Zählvariable nicht verwenden:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "786461b8-ecf9-4afb-8b93-6186f53f6e97", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-8316e1e4eaa0ea0b", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Python is Nice!\n", + "Python is Nice!\n", + "Python is Nice!\n" + ] + } + ], + "source": [ + "for _ in range(3):\n", + " print(\"Python is Nice!\")" + ] + }, + { + "cell_type": "markdown", + "id": "7fd320aa-6bb5-4b9b-9593-2df69cb2ca1e", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-cb8f33d1ae55a6a4", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "## List Comprehension\n", + "\n", + "Seit dem Proposal von [PEP 202](https://peps.python.org/pep-0202/) gibt es in Python die List Comprehension.\n", + "\n", + "Für diese Vorlesung ist es nicht nötig das Sie die Syntax anwenden können, Sie sollten zumindest verstehen wie diese funktioniert.\n", + "\n", + "Angenommen wir haben folgende Mathematische beschreibung einer Menge $$\\{x^2 \\vert x \\in \\mathbb{N}\\}$$\n", + "\n", + "Dies beschreibt die Funktion $f(x) = x^2$ für alle natürlichen Zahlen.\n", + "\n", + "In Python ist es möglich genau diese Menge in einer einzigen Zeile Abzubilden. Dazu wird die List Comprehension verwendet deren Syntax im allgemeinen folgende Form hat:\n", + "\n", + "```python\n", + "[ for value in ]\n", + "```\n", + "\n", + "Schauen wir uns dazu an wie wir die Quadrat Zahlen von `1...6` also `1...36` erzeugen." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7bcdc9d9-cc5b-49be-8cfb-ca40eb3b7796", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-4fd6f801463c5ea6", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "squared = [n*n for n in range(1,7)]\n", + "print(squared)" + ] + }, + { + "cell_type": "markdown", + "id": "b6dcb24c-e01e-4522-8ac4-074adfe6105a", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-c6922240434c9d3a", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Probieren Sie sich gerne selber aus.\n", + "\n", + "### Zusatzaufgabe \n", + "\n", + "*Keine Punkte*\n", + "\n", + "Erstellen Sie eine List mittels List Comprehension, welche die Zahlen `1...6` auf deren kubische Zahl `1...216` also der Funktion $f(x) = x^3$ abbildet." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "522f3228-1797-4ca2-9103-44fce48dfd4a", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-1dc645632c5f653a", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "cubics = []\n", + "### BEGIN SOLUTION\n", + "cubics = [n**3 for n in range(1,7)]\n", + "### END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "7dc19b9f-116b-4741-a798-a66d495d477e", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-4e441b6db861559e", + "locked": true, + "points": 0, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 8, 27, 64, 125, 216]\n" + ] + } + ], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "print(cubics)\n", + "### BEGIN HIDDEN TESTS\n", + "c = [n**3 for n in range(1,7)]\n", + "assert c == cubics\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "5b1355f0-29ed-4318-92f2-51f151c7946e", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-7d9eebd920496d59", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "# System Interactions\n", + "\n", + "Im folgenden Abschnitt beschäftigen wir uns mit dem Eingeben von Daten in ein Programm. Dies geschieht entweder 'von Hand', also über den Benutzer, oder über Dateien." + ] + }, + { + "cell_type": "markdown", + "id": "976a7ad0-856d-4fb6-bba8-485668df22a2", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-e2df7221e04e8c54", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Im Normalfall wollen wir größere Datenmengen einlesen. Dazu nutzen wir die Built-In Funktion `open` ([Python Docs - Open](https://docs.python.org/3/library/functions.html?highlight=open#open)). Auch wenn in der Doku viele Parameter stehen benötigt man im Normalfall nur zwei. Der erste ist der Name der File, der zweite im welchem Modus die Datei geöffnet werden soll (Angegeben als String).\n", + "\n", + "Zum bearbeiten der Datei nutzen wir den Python Kontext Manager - das `with`-Statement. Bei externen Daten ist es immer wichtig die Datei auch wieder zu schließen, damit es nicht zu Datenverlust oder Arbeitsspeichermüll kommt. Daher ist der Lebenzyklus einer Datei in einem Programm immer `Datei öffnen` -> `Datei Bearbeiten` -> `Datei schließen`. Kommt es in einer der Drei schritte zu einem Fehler, bleibt die Datei im RAM hängen und der Computer muss neu gestartet werden um diesen Speicher wieder Frei zu geben.\n", + "\n", + "Daher gibt es Kontext Manager. Dieser versichert dem Programmierer, dass das schließen der Datei immer (!!) passiert. Die Syntax folgt folgender Strucktur:\n", + "\n", + "```python\n", + "with as :\n", + " # do something\n", + "```\n", + "\n", + "Dabei ist `` ein Objekt (für uns eine Datei) und `` die Zuweisung zu einer Variablen. Für die Funktion `open` (im Lesemodus) sieht der Kontext wie folgt aus:\n", + "\n", + "```python\n", + "with open(\"filename.txt\", \"r\") as f:\n", + " f.readlines() # do something with f\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "a345cdf5-d1a0-4bd8-9f77-06e6d4562e00", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-58fb9b7e476f3ef2", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "### Aufgabe\n", + "\n", + "*2 Punkte*\n", + "\n", + "Erstellen und Öffnen sie eine Datei `testfile.txt` mit der `open` Funktion, nutzen Sie dafür das `with`-Statement.\n", + "\n", + "Schreiben Sie in diese Datei 100 mal den String `\"Python\\n\"`. " + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "f11f7a0b-bcca-4db0-a6ca-bf95c70c7303", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-0735bb589edcc6a8", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "with open('testfile.txt', 'w') as f:\n", + " for _ in range(100):\n", + " f.write(\"Python\\n\")\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "c91e07bb-fc41-42c1-8b42-0aca56c57c35", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-2592f8b51914455e", + "locked": true, + "points": 2, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "### BEGIN HIDDEN TESTS\n", + "with open('testfile.txt', 'r') as f:\n", + " lines = f.readlines()\n", + " assert len(lines) == 100\n", + " for line in lines:\n", + " assert line == 'Python\\n'\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "4adb5400-8749-4790-ae49-68a8622b4a3d", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-39769ee8cbf2157d", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "### Aufgabe\n", + "\n", + "*2 Punkte*\n", + "\n", + "Öffnen Sie die zuvor erstellte Datei `testfile.txt` im Lesemodus und weißen Sie den Inhalt der `.readlines()` Funktion der Variabeln `lines` zu. " + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "adf300e9-ee63-4da1-a6f3-c768fa2b5fc9", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-0a3b9e01dd66e134", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "lines = None\n", + "# BEGIN SOLUTION\n", + "with open('testfile.txt', 'r') as f:\n", + " lines = f.readlines()\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "229499d6-bb33-492b-af5d-a26ab3b3f5d4", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-aa7c104b5f3f2572", + "locked": true, + "points": 2, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Anzahl der gelesenen Zeilen: 100\n" + ] + } + ], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "print(\"Anzahl der gelesenen Zeilen:\", len(lines))\n", + "### BEGIN HIDDEN TESTS\n", + "with open('testfile.txt', 'r') as f:\n", + " assert f.readlines() == lines\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "47d92dde-16a1-4c11-a452-cadd74255db2", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-be695e1423a6ccf4", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "## Import Statement\n", + "\n", + " \n", + "\n", + "Da wir nicht immer das Rad neu erfinden wollen nutzen wir Bibliotheken von anderen Entwicklern.\n", + "\n", + "Dazu nutzt man das Keyword `import` gefolgt von dem Modul welches man Importieren möchte. Nutzen wir als Beispiel `numpy`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ced37c65-87d2-48d0-a0ba-4674dcaf104c", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-7d19506e181bcda9", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy" + ] + }, + { + "cell_type": "markdown", + "id": "f5506975-e1cd-434a-8ef1-05a7a06992df", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-b7d981325bea8b84", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Möchte man nun eine Funktion aus dem Modul nutzen folgt die Syntax der Strucktur `.`. Dazu folgendes Numpy Beispiel:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "69c68b31-d0f7-469b-ae54-eef871ec6ad6", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-25ad372a576a793e", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "numpy.array(range(100))" + ] + }, + { + "cell_type": "markdown", + "id": "7c5d65db-d1e8-4cad-884e-bb595c57d445", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-0176c541098f7c21", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "### Aufgabe\n", + "\n", + "*3 Punkte*\n", + "\n", + "Importiere Python Built-In Library `random` und rufe zuerst aus dem Modul die Funktion `seed` auf mit dem Eingabewert `42`, und weiße danach der Variable `rand` den Wert des Funktionsaufrufes von `randint(1,100)` zu. " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "0d80bc9f-6923-4e3f-8a70-909548e693a6", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-8ccc5fe1848176c8", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "rand = None\n", + "# BEGIN SOLUTION\n", + "import random\n", + "random.seed(42)\n", + "rand = random.randint(1,100)\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "ada0211b-03bf-463a-b932-2bad621d5559", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-d7817c3dd1ee34f9", + "locked": true, + "points": 3, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "82\n" + ] + } + ], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "print(rand)\n", + "### BEGIN HIDDEN TESTS\n", + "assert rand == 82\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "f7b3bdcc-825e-4607-8804-a5ce3d39ace5", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-2cc1d2ed682d1b0e", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Das Keyword `as` ist bereits bekannt, dieses kann auch verwendet werden um Module beim import umzubennen. Dies ist dann Hilfreich wenn Module lange Namen haben.\n", + "\n", + "Numpy wird im Internet immer mit np abgekürzt. Beispiel:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f115eae9-500b-448e-a1be-e3b43ffad0fd", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-60f357d6dda4a8d3", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "np.array(range(100))" + ] + }, + { + "cell_type": "markdown", + "id": "f7570244-0fea-4683-a19c-069f6ba619dd", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-94fb7e92492a12f7", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "### Aufgabe\n", + "\n", + "*1 Punkt*\n", + "\n", + "Importieren Sie die Built-In Library `datetime` als `dt`." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "e7e6c246-6dc4-4555-a202-73887b5f8249", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-59dc2ded4f59471f", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "import datetime as dt\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "b03ee34b-8520-4106-a23f-4419e54dcfcc", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-d77ffdb7f9ba178d", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-11-01 19:32:22.691479\n" + ] + } + ], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "print(dt.datetime.now()) # UTC Time also Standard Greenwich Zeit\n", + "### BEGIN HIDDEN TESTS\n", + "assert 'dt' in dir()\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "1cc39ffb-1207-4aa8-a4fe-51df2335fea6", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-c55653efe0a77419", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Möchte man nur eine Bestimmte Funktion aus einem Modul haben nutzt man die `import from` Syntax. Beispiel Pretty Print:" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "638e6c20-7bba-4862-9acc-34031bae8514", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-f84e2596969633f5", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{0: 1,\n", + " 1: 2,\n", + " 2: 4,\n", + " 3: 8,\n", + " 4: 16,\n", + " 5: 32,\n", + " 6: 64,\n", + " 7: 128,\n", + " 8: 256,\n", + " 9: 512,\n", + " 10: 1024,\n", + " 11: 2048,\n", + " 12: 4096,\n", + " 13: 8192,\n", + " 14: 16384,\n", + " 15: 32768,\n", + " 16: 65536,\n", + " 17: 131072,\n", + " 18: 262144,\n", + " 19: 524288}\n" + ] + } + ], + "source": [ + "from pprint import pprint\n", + "pprint({n: 2**n for n in range(20)})" + ] + }, + { + "cell_type": "markdown", + "id": "c1e077c1-59a5-411b-bf71-32ea66dc731d", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-0ac2347c47ff5774", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "### Aufgabe\n", + "\n", + "*2 Punkte*\n", + "\n", + "Importieren Sie die Funktion `sqrt` aus dem Built-In Modul `math`.\n", + "Berechnen Sie $\\sqrt4$. Speichern Sie das Ergebnis in der variablen `s4`." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "81838f9b-558c-49b3-90ef-647e28380a97", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-7c1ea8bca61d5c12", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "from math import sqrt\n", + "s4 = sqrt(4)\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "6d984a74-a93d-4865-b6d1-d2dec8586907", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-83c667de468e9ef8", + "locked": true, + "points": 2, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.0\n" + ] + } + ], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "print(s4)\n", + "### BEGIN HIDDEN TESTS\n", + "assert 'sqrt' in dir()\n", + "assert int(s4) == 2\n", + "### END HIDDEN TESTS" + ] + }, + { + "cell_type": "markdown", + "id": "6edf5dce-17d2-4a5f-9d96-2c7c3091de88", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-814b3bfa4b6e049a", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Ein letzter Hinweis: Es gibt auch die Möglichkeit in der `import from` Syntax das Keyword `as` zu verwenden.\n", + "\n", + "Beispiel aus dem Modul `dataclasses` importiert `dataclass` als `dclass`:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "b707bf52-546f-4689-8216-c5ad0b9665a7", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-9961359e9d09d79b", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "from dataclasses import dataclass as dclass\n", + "print(dclass)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Material/wise_24_25/lernmaterial/3.Extended_Applications.ipynb b/Material/wise_24_25/lernmaterial/3.Extended_Applications.ipynb new file mode 100644 index 0000000..e7e60ba --- /dev/null +++ b/Material/wise_24_25/lernmaterial/3.Extended_Applications.ipynb @@ -0,0 +1,1661 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "1ddc11f3-0a8a-47ee-b7b7-6dfd22ac40d9", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-8c0ecbebdebcad39", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "# Extended Applications: Python Übung\n", + "\n", + "
\n", + "
\n", + " Willkommen zum Zusatz der ersten Programmierübung Einführung in Python 3.\n", + "
\n", + " \n", + "
\n", + "\n", + "In dieser Übung werden erweiterte Konzepte gelernt, welche das Konzipieren von Programmen stark vereinfacht.\n", + "\n", + "Wenn Sie Fragen oder Verbesserungsvorschläge zum Inhalt oder Struktur der Notebooks haben, dann können sie eine E-Mail an Phil Keier ([p.keier@hbk-bs.de](mailto:p.keier@hbk-bs.de?subject=[SigSys]%20Feedback%20Programmierübung&)) oder Martin Le ([martin.le@tu-bs.de](mailto:martin.le@tu-bs.de?subject=[SigSys]%20Feedback%20Programmierübung&)) schreiben.\n", + "\n", + "Link zu einem Python Spickzettel: [hier](https://s3.amazonaws.com/assets.datacamp.com/blog_assets/PythonForDataScience.pdf)\n", + "\n", + "Der Großteil des Python-Tutorials stammt aus der Veranstaltung _Deep Learning Lab_ und von [www.python-kurs.eu](https://www.python-kurs.eu/python3_kurs.php) und wurde für _Signale und Systeme_, sowie _Einführung in die Programmierung für Nicht Informatiker_ angepasst." + ] + }, + { + "cell_type": "markdown", + "id": "f47e9f08-663b-4c2f-85c7-8b6c7f654b45", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-40ca946ad65b66b6", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "# Konventionen\n", + "\n", + "Python hat einen Grundlegenden Styleguide 2001 von Guido van Rossum festgelegt in [PEP 8](https://peps.python.org/pep-0008/).\n", + "\n", + "Dazu nur ein paar Anmerkungen:\n", + "\n", + "1. Variabel- & Funktionsnamen werden immer kleingeschrieben und mittels \"snake case\" geschrieben. Bsp.: `is_alive`\n", + "2. Zum Einrücken sollten 4 Leerzeichen verwendet werden die mit Tab eingeleitet werden. (Jupyter macht dies Automatisch richtig)\n", + "3. Beim schreiben von Kommentaren folgt nach `#` immer ein Leerzeichen. Bsp.: `# Kommentar`\n", + "4. Importe aus Modulen sollen getrennt sein.\n", + "\n", + " Richtig:\n", + " ```python\n", + " import os\n", + " import sys\n", + " ```\n", + " \n", + " Falsch:\n", + " ```python\n", + " import os, sys\n", + " ```\n", + "\n", + "5. Mehrfach importe aus einem Modul sind dennoch mit `,` gern gesehen.\n", + "\n", + " Bsp.:\n", + " ```python\n", + " from dataclass import dataclass, field, asdict\n", + " ```\n", + "\n", + "6. Nach jedem `,`, `:`(außer beim slicing) und operator `+, =, etc.` folgt ein Leerzeichen.\n", + " \n", + " Bsp.:\n", + " ```python\n", + " x = 4 + 2\n", + " arr[5:10]\n", + " ```\n", + "\n", + "7. Kein unnötiges Ausrichten von Variablen.\n", + "\n", + " So nicht:\n", + " ```python\n", + " x = 4\n", + " y = 5\n", + " name = \"Lisa\"\n", + " ```\n", + "\n", + "8. Die Variablnamen `l` (Kleingeschriebenes L), `O` (Großes o) und `I` (Großes i) sollten niemals als Einzelvariablennamen verwendet werden, da diese Schwer von `i` (Kleines i), `0`(Die Zahl Null) und `L` (Großes L) in einigen Schriftarten zu unterscheiden sind. (Sollte mit Jupyter kein Problem darstellen)" + ] + }, + { + "cell_type": "markdown", + "id": "4abb5645-0172-4fd7-8f79-02af5140b234", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-ef37f36145723997", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "# Generatoren\n", + "\n", + "Nachdem wir bereits Funktionen kennengelernt haben, welche einen Rückgabewert haben, lernen wir nun ein Python Konzept kennen, dass \"On the fly\" Daten zur Verfügung stellt.\n", + "\n", + "Bisher sind wir davon ausgegangen das beispielweise die Funktion `range` eine Liste zurückgibt. Dies ist vom Gedanken her richtig, dennoch nicht in der Umsetzung.\n", + "\n", + "Mit einem einfachen `print` lässt sich dies auch bestätigen:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "f8f4aee6-ce57-41f8-af18-7256b0126515", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-1e78bfa1751878c9", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "range(0, 10)\n" + ] + } + ], + "source": [ + "print(range(10))" + ] + }, + { + "cell_type": "markdown", + "id": "dc9f0f52-0a0d-4e5c-8b6f-d7a2b7c5b2e3", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-1c1a0f19a370c840", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Statt wie vielleicht zu erwarten die Liste von werten `0...9` als Ausgabe zu bekommen, gibt uns Python lediglich `range(0, 10)` zurück.\n", + "\n", + "Möchte man die Werte direkt evaluiert haben muss der `*`-Operator verwendet werden:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "89986045-bb47-4bca-b561-bab9bb2b988b", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-723d591c32fda1a7", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 1 2 3 4 5 6 7 8 9\n" + ] + } + ], + "source": [ + "print(*range(10))" + ] + }, + { + "cell_type": "markdown", + "id": "2248b888-aa12-4367-b1f4-bb4befc43df4", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-19e02ebb63f72a88", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Dabei verändert `range(10)` die `print` Funktion indem es alle Generator Werte als Parameter einsetzt `print(0,1,2,3,4,5,6,7,8,9)` und danach aufruft.\n", + "\n", + "Um selber einen Generator zu definieren benötigt man das Python Keyword `yield`. Im Gegensatz zum Normalen `return` wird die Berechnung nur gestoppt und zu einem späteren Zeitpunkt ausgeführt. Sozusagen hat der Generator ein veränderbaren Zustand.\n", + "\n", + "Die Syntax hierzu ist im Allgemeinen:\n", + "\n", + "```python\n", + "def ():\n", + " # do something\n", + " yield \n", + "```\n", + "\n", + "Eine rudimentäre Funktion `count_to` lässt sich dementsprechend wie folgt definieren:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "e4686bab-6686-4464-9015-54d420087e5a", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-795ddd785249ca9d", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is a Generator: \n", + "This Generator evaluates to: 0 1 2 3 4 5 6 7 8 9\n" + ] + } + ], + "source": [ + "def count_to(n):\n", + " count = 0\n", + " while count < n:\n", + " yield count\n", + " count += 1\n", + "\n", + "print(\"This is a Generator:\", count_to(10))\n", + "print(\"This Generator evaluates to:\", *count_to(10))" + ] + }, + { + "cell_type": "markdown", + "id": "7adfeae1-bab7-42b8-b9f7-39c91cb5db0b", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-ca4e8d2864d7cff7", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Selbiges mit einem For Loop:" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "a19b17c4-144b-4197-8a71-f0554b467564", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-131bc31d10dd26c9", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is a Generator: \n", + "This Generator evaluates to: 0 1 2 3 4 5 6 7 8 9\n" + ] + } + ], + "source": [ + "def count_to(n):\n", + " for i in range(n):\n", + " yield i\n", + "\n", + "print(\"This is a Generator:\", count_to(10))\n", + "print(\"This Generator evaluates to:\", *count_to(10))" + ] + }, + { + "cell_type": "markdown", + "id": "7cbdb90b-bedf-4197-97b8-8baf58c92190", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-c2c489efaeeb75dd", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "### Aufgabe\n", + "\n", + "*3 Punkte*\n", + "\n", + "Schreibe einen Generator `square_count` mit einem Eingabeparameter `n`, welcher die Quadratzahlen von $1\\dots n^2$ ausgibt.\n", + "\n", + "Die Aufgabe gibt 0 Punkte, wenn die Funktion `square_count` kein Generator ist!\n", + "\n", + "Hinweis: Bei Eingabe von `5` soll die Ausgabe `1 4 9 16` sein." + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "2df62e85-d5a5-4664-bdf6-c544ed8fb0d1", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-a037e576943e230b", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "def square_count(n): \n", + " for i in range(1, n):\n", + " yield i*i\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "id": "234d782c-88f4-4bc2-a872-15a592ee1248", + "metadata": { + "editable": true, + "nbgrader": { + "grade": true, + "grade_id": "cell-a6c43a5365ad736d", + "locked": true, + "points": 3, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Square Numbers from 0 to 1: 1\n", + "Square Numbers from 0 to 2: 1 4\n", + "Square Numbers from 0 to 3: 1 4 9\n", + "Square Numbers from 0 to 4: 1 4 9 16\n", + "Square Numbers from 0 to 5: 1 4 9 16 25\n" + ] + } + ], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "\n", + "# Check if the generator has the right name\n", + "assert \"square_count\" in dir() # 1 Punkt\n", + "\n", + "# Check if square_count is a generator\n", + "import types\n", + "assert isinstance(square_count(1), types.GeneratorType) # 1 Punkt\n", + "\n", + "# Check if the generator generates the right output\n", + "for n in range(10): \n", + " assert [i*i for i in range(1,n)] == [i for i in square_count(n)] # 1 Punkt\n", + "\n", + "# print\n", + "for n in range(2, 7):\n", + " print(f\"Square Numbers from 0 to {n-1}:\", *square_count(n))" + ] + }, + { + "cell_type": "markdown", + "id": "8e1cb8b2-cdaa-422a-9889-c4e0794d7d81", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-5f6f32fed19a1933", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Generatoren können auch eine unendliche Menge an Daten zurückgeben. Dieses Ziel kann man erreichen indem der Generator unendlich oft ausgeführt wird. Da die Daten zur Laufzeit berechnet werden kann man von einer unendlichen Menge sprechen.\n", + "\n", + "Um eine Berechnung nie enden zu lassen muss die Bedingung der Schleife immer `wahr` bleiben.\n", + "Dies erreicht man durch die Syntax `while True:`, aber Python ist eben Python und die Syntax `while 1:` ist Laufzeit effizienter.\n", + "\n", + "Schauen wir uns nun das Beispiel eines unendlichen Generator an der Fortwährend die nächste Fakultät ausgibt:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "e7a2e825-b67d-4618-9358-4ee06ef5cc38", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-55717dfe7800e3fb", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "def faktoriel_gen():\n", + " curr = 1\n", + " count = 1\n", + " while 1:\n", + " curr = count * curr\n", + " count += 1\n", + " yield curr" + ] + }, + { + "cell_type": "markdown", + "id": "496d59e9-e3c1-47d1-982d-8c5688cb7893", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-7d21c6426cee23f0", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Vorsicht (!!) wertet man diesen Generator nun aus würde die Berechnung niemals enden. Um den nächsten Wert der Berechnung zu erhalten hat Python die Funktion `next`, welche den nächsten Zustand des Generators ausgibt. Mit einem `for`-loop und `next` lassen sich dann die Fakultäten der Zahlen bis `5` einfach ausgeben:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "4249c820-f03c-4393-bb8f-5078f9a9a0b8", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-166ede3f392e88e7", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "2\n", + "6\n", + "24\n", + "120\n" + ] + } + ], + "source": [ + "gen = faktoriel_gen()\n", + "\n", + "for _ in range(5):\n", + " print(next(gen))" + ] + }, + { + "cell_type": "markdown", + "id": "8b0d160f-d445-4877-a634-2de69336e70a", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-2e5778830ac74399", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Da der Zustand des Generator gespeichert ist lässt sich mit einem weiteren aufruf in nächster Zelle auf $6! = 720$ ausgeben:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "32e5eb93-507a-490e-9395-717bc7717973", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-30acb8e9a68a7794", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "720\n" + ] + } + ], + "source": [ + "print(next(gen))" + ] + }, + { + "cell_type": "markdown", + "id": "9901cb74-faf9-47f1-b87e-60d9683778d3", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-3f6a4841c593371f", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "### Aufgabe\n", + "\n", + "*3 Punkte*\n", + "\n", + "Schreibe einen Generator `naturals`, welcher mit jedem Aufruf die nächste natürliche Zahl ausgibt. (Angefangen mit 1)\n", + "\n", + "- Es sind keine Eingabeparameter notwendig.\n", + "- Ist die Funktion kein generator, wird diese Aufgabe mit 0 Punkten bewertet\n", + "\n", + "*Hinweis*: Orientiere dich an dem Beispiel `faktoriel_gen`" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "a8b2697c-706b-4744-a4b3-00682d6c95c3", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-09dd94e802cad9bc", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "def naturals():\n", + " curr = 1\n", + " while 1:\n", + " yield curr\n", + " curr += 1\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "id": "403c70b9-3ac3-4a85-a302-d9c7d0585cbc", + "metadata": { + "editable": true, + "nbgrader": { + "grade": true, + "grade_id": "cell-e065f7326fb561ad", + "locked": true, + "points": 3, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, " + ] + } + ], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "\n", + "# Check if generator is named properly\n", + "assert \"naturals\" in dir() # 1 Punkt\n", + "\n", + "# Check if naturals is a generator\n", + "import types\n", + "assert isinstance(naturals(), types.GeneratorType) # 1 Punkt\n", + "\n", + "# Test if generator works as intended\n", + "import random\n", + "test_n = random.randint(5, 17)\n", + "test_gen = naturals()\n", + "for i in range(1, test_n):\n", + " number = next(test_gen)\n", + " print(number, end=', ')\n", + " assert i == number # 1 Punkt" + ] + }, + { + "cell_type": "markdown", + "id": "41bb0337-7194-4482-a5b9-af1243d4809c", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-bbe0bad0c47d41ae", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "# Type Hints\n", + "\n", + "Mit [PEP 484](https://peps.python.org/pep-0484/) wurden in Python die `type hints` eingeführt. Die Motivation dafür war es eine Standard Syntax zu definieren, welche einem die Möglichkeit gibt den In- und Output von Funktionen besser zu bestimmen. Unter anderem verbessert sich die Testbarkeit von Python Programmen ungemein wenn Type Hints vorhanden sind. Im Allgemeinen werden `type hints` daher verwendet, um von Variablen und Funktionen die Typen (`int`, `float`, `dict`, etc.) anzuzeigen.\n", + "\n", + "Die Allgemeine Syntax dafür:\n", + "```python\n", + "def (: , : ) -> :\n", + " # do something\n", + " return \n", + "```\n", + "\n", + "Python ist eine dynamische typisierte Sprache. Das heißt, dass der Typ einer Variable immer wieder überprüft werden muss. So kann eine Ganzzahl `int` mit einer einfachen addition in eine Flieskommazahl `float` überführt werden:" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "id": "d2148990-b5cb-4fe5-8751-bac8338fa581", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-560aa9d85c5a4383", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 \n", + "3.14 \n" + ] + } + ], + "source": [ + "number = 3\n", + "print(number, type(number))\n", + "number += 0.14\n", + "print(number, type(number))" + ] + }, + { + "cell_type": "markdown", + "id": "56c143f5-1c67-4999-8656-dc68d5912fb4", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-a85903e6bffa1ff1", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Um diese unerwünschten Typenwechsel zu vermeiden, kann man type hints verwenden. Type hints sind nur eine Info keine Garantie das der Typ einer Variable sich ändert!\n", + "\n", + "Eine nutzlose Funktion die den Eingabewert als `int` in einen `str` umwandelt sieht wie folgt aus:" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "642dc60b-fa8d-4655-bc47-815f39365506", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-94708ecde4287ff7", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number 42\n" + ] + } + ], + "source": [ + "def useless(number: int) -> str:\n", + " return \"Number {}\".format(number)\n", + "\n", + "print(useless(42))" + ] + }, + { + "cell_type": "markdown", + "id": "ac0a9f33-2e9a-4779-8bf8-1004e6ed7177", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-36dc004fdb6c6682", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Um anzuzeigen das eine Variable einen bestimmten Datentypen zugeordnet ist wird folgende Syntax verwendet:" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "id": "e25d2f29-5857-4f0a-93d7-609201e8a0da", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-fdc340bdc4a2000e", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "name: str = \"Peter Parker\"" + ] + }, + { + "cell_type": "markdown", + "id": "777904ec-3567-41c8-a619-2c38ad6b6c51", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-ea3aeed85ff0587c", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "# Dataclasses \n", + "\n", + "Allgemein auf Klassen wird hier nicht eingegangen jedoch ein Konzept, welches mit [PEP 557](https://peps.python.org/pep-0557/) eingeführt wurde, soll folgend stärker beleuchtet werden.\n", + "\n", + "Datenstruckturen wie `dict`, `set`, `list`, etc. sind mächtige Werkzeuge und ermöglichen dem Programmierer Daten in vielen Formen akkurat dazustellen. Möchte man jedoch feste Datenstrukturen mit genau definierten Werten verwenden eignet sich das Modul `dataclasses`.\n", + "\n", + "Dazu wird eine Klasse mit dem Keyword `class` definiert und dem Decorator `dataclasses.dataclass` ausgesattet. Folglich können feste Datenobjekte mit definierter Struktur erstellt werden.\n", + "\n", + "Zunächst wird das Modul aus der Standard Bibliothek importiert:" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "id": "24392aea-8ba8-4f9e-ba95-5bf5c99a127b", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-fa6710d8dd259c2d", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from dataclasses import dataclass" + ] + }, + { + "cell_type": "markdown", + "id": "abb46684-015f-48c7-98b8-f2955e71de2d", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-36842ee26321c3ec", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Danach kann eine Klasse erstellt werden. Erstellen wir zunächst eine Klasse `Person`, welche die Werte `vorname` und `nachname` als Strings bereitstellen soll:\n", + "\n", + "Wichtig: Python Klassen fangen immer mit einem Großbuchstaben an. Mit Ausnahme der Standard Bibliothek. Die `range` Funktion lässt sich zwar verwenden wie eine Funktion, ist aber eigentlich eine Klasse!" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "b70f39ca-6e57-4b03-a3be-c3b5ac604a9c", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-8b8b2e316c36725c", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "@dataclass\n", + "class Person:\n", + " vorname: str\n", + " nachname: str" + ] + }, + { + "cell_type": "markdown", + "id": "94901847-a849-463b-968a-b498a9f84edc", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-846dcecf70fd8d14", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Möchten wir nun eine Person erstellen sieht dies wie folgt aus:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "27320011-ee5d-43c9-8e07-fbd3036680f7", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-1cf940f3240bf428", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Person(vorname='Eduard', nachname='Jorswieck') \n" + ] + } + ], + "source": [ + "person = Person(\"Eduard\", \"Jorswieck\")\n", + "print(person, type(person))" + ] + }, + { + "cell_type": "markdown", + "id": "be0c2b13-937e-4073-8dfa-a6d305ed9c6f", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-8338f70364284fc7", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Wie dem Output zu entnehmen ist die Variable `person` ein Objekt vom Typ `Person` und hält die Werte `vorname='Eduard'` und `nachname='Jorswieck'` vor.\n", + "\n", + "Auf die einzelnen Werte innerhalb der Dataclass kann nun per `.` Operator zugegriffen werden:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "191bb87c-06ab-40a4-b5b3-56e9c533b930", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-b6da422f93431723", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Vorname: Eduard\n", + "Nachname: Jorswieck\n" + ] + } + ], + "source": [ + "print(\"Vorname:\", person.vorname)\n", + "print(\"Nachname:\", person.nachname)" + ] + }, + { + "cell_type": "markdown", + "id": "3e85dee5-09ea-4c00-9730-05fb006ced2b", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-d80fa3ef35e81dab", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Dataclasses bieten auch den Vorteil, dass ihre Werte direkt über die Variablennamen definiert werden können. Dabei spielt die Reihenfolge dann keine Rolle mehr." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "a5ea4ef9-dcba-4411-a2e8-1a1a811e6cac", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-20f0d6f2cb9ef5df", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Person(vorname='Martin', nachname='Le') \n" + ] + } + ], + "source": [ + "person2 = Person(nachname=\"Le\", vorname=\"Martin\")\n", + "print(person2, type(person2))" + ] + }, + { + "cell_type": "markdown", + "id": "68db3f9c-b6ad-4454-87be-71a78a209a40", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-2489e8269aa6414d", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Nicht immer sind alle Werte vorhanden und damit dies nicht zum Problem wird können Standardwerte vergeben werden:" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "ce05d4eb-747b-41ad-9fea-5430b8310e8c", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-92f8a3cacfda2c15", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "@dataclass\n", + "class Person:\n", + " vorname: str = \"Max\"\n", + " nachname: str = \"Mustermann\"" + ] + }, + { + "cell_type": "markdown", + "id": "e4def98c-60a9-4dcf-a71b-6be49f853b3b", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-009056608941f805", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Wird nun eine Dataclass ohne Eingabeparameter erstellt, werden ihr ihre Standardwerte zugewiesen:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "6d5e0c5d-0f70-4303-83cb-234e9523500c", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-dbc29451821056d9", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Aufruf mit print: Person(vorname='Max', nachname='Mustermann')\n" + ] + } + ], + "source": [ + "nameless_person = Person()\n", + "print(\"Aufruf mit print:\", nameless_person) " + ] + }, + { + "cell_type": "markdown", + "id": "ccee5184-2f5e-4b90-99ae-2702405c0ec9", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-1c171ff9c43179be", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "### Aufgabe\n", + "\n", + "*6 Punkte*\n", + "\n", + "Schreiben Sie eine Dataclass `Student`\n", + "\n", + "- Die dataclass soll die Werte `vorname`, `nachname`, `semester` und `mat_nr` speichern, vergebe hierzu selber den !!geeigneten!! Datentypen. Mache dir dazu Gedanken ob es Sinnvoll beispielweise die Semesteranzahl als Float zu speichern.\n", + "\n", + "- importiere aus dem dataclasses modul die Funktion `asdict`, erstelle ein Objekt mit den Werten aus dem Beispielstundent, weiße den rückgabewert aus `asdict` aufgerufen mit dem Beispielstudenten der Variablen `stud` zu.\n", + "\n", + "- Die Aufgabe wird mit 0 Punkten bewertet, wenn `Student` keine dataclass ist!\n", + "\n", + "- Hat einer der Attribute keinen geeigneten Datentypen, führt dies nicht zu Punktabzug bei zwei oder mehr schon.\n", + "\n", + "Beispielstudent:\n", + "\n", + "|Attribut|Wert|\n", + "|-|-|\n", + "|vorname|Martin|\n", + "|nachname|Le|\n", + "|mat_nr|520420|\n", + "|semester|5|" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "id": "d17b07db-7340-47c0-ab1d-38d75b3194c0", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-ac7d4ba80c4a0341", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# BEGIN SOLUTION\n", + "from dataclasses import asdict\n", + "\n", + "@dataclass\n", + "class Student:\n", + " vorname: str\n", + " nachname: str\n", + " mat_nr: int\n", + " semester: int \n", + "\n", + "stud = asdict(Student(vorname='Martin', nachname='Le', mat_nr=520420, semester=5))\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "id": "ab8dcc00-fc3f-4ae3-a18d-73f97e166ae3", + "metadata": { + "nbgrader": { + "grade": true, + "grade_id": "cell-10b27d53a9659696", + "locked": true, + "points": 6, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'vorname': 'Martin', 'nachname': 'Le', 'mat_nr': 520420, 'semester': 5}\n" + ] + } + ], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "\n", + "# Check if asdict is imported\n", + "assert \"asdict\" in dir() # 1 Punkt\n", + "\n", + "# Check if Student is named properly\n", + "assert \"Student\" in dir() # 1 Punkt\n", + "\n", + "# Check if Student is a Dataclassimport dataclasses\n", + "from dataclasses import is_dataclass\n", + "assert is_dataclass(Student) # 1 Punkt\n", + "\n", + "# Check if stud is properly converted from Dataclass to dict\n", + "# 3 Punkt\n", + "assert stud == {'vorname': 'Martin', 'nachname': 'Le', 'mat_nr': 520420, 'semester': 5}\n", + "print(stud)" + ] + }, + { + "cell_type": "markdown", + "id": "448b2019-405f-4f3d-87d4-afa183363a35", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-b8ee343f30f40e1e", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "### Aufgabe\n", + "\n", + "*6 Punkte*\n", + "\n", + "Gegeben sind zwei Listen `colorn` & `colorv_hex`, welche zueinander Index Sortiert sind.\n", + "\n", + "Schreiben nun eine Dataclass `Color` mit den Attributen `name` & `value` und vergebe geeignete Type Hints.\n", + "\n", + "Erstelle danach eine Liste, welche die Werte aus `colorn` & `colorv_hex` in die Dataclass `Color` umwandeln, und speicher die Liste in der variablen `colors`.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "id": "27555b53-51e1-48b8-8962-528c22c85b02", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-8fb05db31c5a091d", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "colorn = ['RED', 'GREEN', 'BLUE', 'YELLOW', 'PURPLE']\n", + "colorv_hex = ['#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#FF00FF']" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "id": "be9ea7b1-45c4-418d-9a5f-0d101c9fd245", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-dbfa5551c836768a", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Color(name='RED', value='#FF0000'), Color(name='GREEN', value='#00FF00'), Color(name='BLUE', value='#0000FF'), Color(name='YELLOW', value='#FFFF00'), Color(name='PURPLE', value='#FF00FF')]\n" + ] + } + ], + "source": [ + "colors = None\n", + "# BEGIN SOLUTION\n", + "@dataclass\n", + "class Color:\n", + " name: str\n", + " value: str\n", + "\n", + "colors = [Color(n, w) for n, w in zip(colorn, colorv_hex)]\n", + " \n", + "print(colors)\n", + "# END SOLUTION" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "id": "cbf53cfd-7b06-443c-8aca-55463d77aa57", + "metadata": { + "editable": true, + "nbgrader": { + "grade": true, + "grade_id": "cell-a720d5d5ba2ea35c", + "locked": true, + "points": 6, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Color(name='RED', value='#FF0000'), Color(name='GREEN', value='#00FF00'), Color(name='BLUE', value='#0000FF'), Color(name='YELLOW', value='#FFFF00'), Color(name='PURPLE', value='#FF00FF')]\n" + ] + } + ], + "source": [ + "# Hier werden die Loesungen getestet...\n", + "\n", + "# Check if Color is named properly\n", + "assert \"Color\" in dir() \n", + "\n", + "# Check if Color is a Dataclassimport dataclasses\n", + "from dataclasses import is_dataclass\n", + "assert is_dataclass(Color) # 1 Punkt\n", + "\n", + "# Check if colors is a list\n", + "assert isinstance(colors, list) # 1 Punkt\n", + "\n", + "# Check if colors contains only Color Classes \n", + "for c in colors:\n", + " assert is_dataclass(c) # 1 Punkt\n", + "\n", + "### BEGIN HIDDEN TEST\n", + "@dataclass\n", + "class Color:\n", + " name: str\n", + " value: str\n", + "\n", + "c = [Color(n, w) for n, w in zip(colorn, colorv_hex)]\n", + "for r, s in zip(c, colors):\n", + " assert r.name == s.name\n", + " assert r.value == s.value\n", + "### END HIDDEN TEST\n", + "\n", + "print(colors) # 3 Punkte" + ] + }, + { + "cell_type": "markdown", + "id": "afe6543a-b41b-4d3c-9929-525a0463c6af", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-a65f2c871406072c", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "# Walrus Operator - Assingment Expressions\n", + "\n", + "Der Grund warum Guido van Rossum das Python Projekt verlassen hat, ist der Walrus Operator `:=`, zu finden unter [PEP 572](https://peps.python.org/pep-0572/). \n", + "\n", + "Das Offizielle Statement:\n", + "\n", + "> \"The straw that broke the camel's back was a very contentious Python enhancement proposal, where after I had accepted it, people went to social media like Twitter and said things that really hurt me personally. And some of the people who said hurtful things were actually core Python developers, so I felt that I didn't quite have the trust of the Python core developer team anymore.\"\n", + "> - Guido van Rossum\n", + "\n", + "Das Problem der Operator `:=` fügt keinerlei neue Funktionalität hinzu und erlaubt einzig und allein eine Zuweisung während einer Auswertung zu erlauben.\n", + "\n", + "Daher ein paar kurze Beispiele, lesen Sie ansonsten gerne PEP 572.\n", + "\n", + "Zuweisung mittels Walrus Operator: (Machen Sie das bitte nicht nach, Niemand wirklich Niemand möchte das sehen!)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "8055d0b2-eb9f-4a1a-ac74-4bfcd6cbee81", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-860f5501722f78aa", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n", + "False\n" + ] + } + ], + "source": [ + "# Normale Zuweisung\n", + "walrus = True\n", + "print(walrus)\n", + "\n", + "# Walrus Zuweisung\n", + "(walrus := False)\n", + "print(walrus)" + ] + }, + { + "cell_type": "markdown", + "id": "af5f2aab-0e6d-41d8-b3e1-96969a5ad264", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-2fb74418e2478ef5", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Berechnung und Zuweisung in einer Zeile.\n", + "\n", + "Walrus soll verwendet werden, wenn man vermeiden möchte das eine Berechnung zweimal ausgeführt wird.\n", + "\n", + "Beispiel Klassisch `n+1` wird zweimal berechnet:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "b41cae11-20f2-4500-b32a-77775502f6ea", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-85ffa763f1c26ced", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5\n" + ] + } + ], + "source": [ + "n = 4\n", + "if (n + 1) > 3:\n", + " print(n+1)" + ] + }, + { + "cell_type": "markdown", + "id": "5ad0b0b7-5d85-4a1d-9083-30790c494035", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-da3163fec3bf5f09", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Mit Walrus lässt sich im `if` die Berechnung `n+1` der Variablen `out` zuweisen:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "cde3f827-477c-46d4-8057-af35b694ebef", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-664ab7388a3cb90c", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5\n" + ] + } + ], + "source": [ + "n = 4\n", + "if (out := n + 1) > 3:\n", + " print(out)" + ] + }, + { + "cell_type": "markdown", + "id": "16375c7c-ef2e-44b7-a5f1-2156248f616c", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-11c8ad1c8ab2ef15", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Ohne Walrus lässt sich dennoch immer vermeiden die Berechnung `n+1` zweimal auszuführen:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "c1bf6d7e-8ce8-4770-8060-a6d18ab8d85e", + "metadata": { + "nbgrader": { + "grade": false, + "grade_id": "cell-2dbb33acbcf4f8a4", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5\n" + ] + } + ], + "source": [ + "n = 4\n", + "out = n + 1\n", + "if out > 3:\n", + " print(out)" + ] + }, + { + "cell_type": "markdown", + "id": "302a6dfd-2e3d-401d-93c9-1335e081e837", + "metadata": { + "editable": true, + "nbgrader": { + "grade": false, + "grade_id": "cell-3254f96c16f5c246", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + }, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "**Persönliche Meinung**: Ich rate davon ab Walrus `:=` zu verwenden. In meinen Augen macht es den Code Grundsätzlich unlesbar und spart im besten Fall 2-3 Zeilen Code. In meiner eigenen Programmiererfahrung gab es nie einen Grund den Operator zu verwenden, er fügte nie einen realen Nutzen in irgendeine meiner Berechnungen ein. Dennoch wollt ich dir einmal Demonstrieren wie Walrus funktioniert." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Material/wise_24_25/lernmaterial/4.NP_MPL.ipynb b/Material/wise_24_25/lernmaterial/4.NumPy_MatPlotLib.ipynb similarity index 100% rename from Material/wise_24_25/lernmaterial/4.NP_MPL.ipynb rename to Material/wise_24_25/lernmaterial/4.NumPy_MatPlotLib.ipynb diff --git a/Material/wise_24_25/lernmaterial/matplotlib.ipynb b/Material/wise_24_25/lernmaterial/matplotlib.ipynb deleted file mode 100644 index 1d410bd..0000000 --- a/Material/wise_24_25/lernmaterial/matplotlib.ipynb +++ /dev/null @@ -1,1729 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "495dd375-03bd-468b-9efa-4c0dc0e03e71", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-d5e39caeb15d5f93", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "# 4. Programmierübung: Matplotlib\n", - "\n", - "
\n", - "
\n", - " Willkommen zur vierten Programmierübung Einführung in Python 3.\n", - "
\n", - " \n", - "
\n", - "\n", - "Wenn Sie Fragen oder Verbesserungsvorschläge zum Inhalt oder Struktur der Notebooks haben, dann können sie eine E-Mail an Phil Keier ([p.keier@hbk-bs.de](mailto:p.keier@hbk-bs.de?subject=[SigSys]%20Feedback%20Programmierübung&)) oder Martin Le ([martin.le@tu-bs.de](mailto:martin.le@tu-bs.de?subject=[SigSys]%20Feedback%20Programmierübung&)) schreiben.\n", - "\n", - "Link zu einem Python Spickzettel: [hier](https://s3.amazonaws.com/assets.datacamp.com/blog_assets/PythonForDataScience.pdf)\n", - "\n", - "Der Großteil des Python-Tutorials stammt aus der Veranstaltung _Deep Learning Lab_ und von [www.python-kurs.eu](https://www.python-kurs.eu/python3_kurs.php) und wurde für _Signale und Systeme_, sowie _Einführung in die Programmierung für Nicht Informatiker_ angepasst.\n", - "\n", - "---" - ] - }, - { - "cell_type": "markdown", - "id": "d6320c43-281a-4c81-86ca-ded1f2d57f19", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-56a32bfbc0754cb7", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "# Was ist Matplotlib\n", - "\n", - "Matplotlib ist eine Python Bibliothek zum (interaktiven) Visualisieren von Daten. Die Bibliothek intergiert sich super mit anderen viel Benutzten Python Bibliotheken wie NumPy. Der Vorteil in Kombination mit Jupyter besteht in der direkten Ausgabe eines Plots auf dem Bildschirm.\n", - "\n", - "__Nutzen Sie für diese Aufgabe gerne die [Matplotlib Reference](https://matplotlib.org/stable/users/index.html)__\n", - "\n", - "---" - ] - }, - { - "cell_type": "markdown", - "id": "994c8d87-9f58-4915-9eb5-f55e16d31487", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-bc85a0be9322c558", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "# Import & Jupyter Magick\n", - "\n", - "Um Matplotlib zu verwenden müssen wir diese importieren. Dabei ist das Objekt `pyplot` der Dreh und Angelpunkt der ganzen Magie. Wie auch bei NumPy hat das Internet ein ungeschriebenes Gesetz, dass die Abkürzung von `matplotlib.pyplot` `plt` heißt. \n", - "\n", - "Importieren wir im ersten Schritt matplotlib als plt:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "4e07b9b9-adab-46d6-97bd-c9fce64f4280", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-68fd2b50ade28cf5", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "id": "cf8480a8-a92b-401f-90fb-a92d4d8cb33d", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-bef28e9b16f2bbd6", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "Jupyter hat magische Parameter die von den Bibliotheken verwendet werden können um gewissen Einstellungen im Hintergrund zu treffen. Daher brauchen wir in nächster Zeile genau dieses \"magische\" Statement. \n", - "\n", - "Falls Sie dazu mehr Wissen wollen Lesen Sie den Eintrag zu [Rich Outputs](https://ipython.readthedocs.io/en/stable/interactive/plotting.html) in der IPython Dokumentation." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "27f26d6b-2b3c-4c60-b878-b728d2467b1f", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-5c87d5ef9d857466", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [], - "source": [ - "%matplotlib inline" - ] - }, - { - "cell_type": "markdown", - "id": "58332e87-d29d-4307-92de-bc5d70ac6419", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-f5c587ae3eade082", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "Im Allgemeinen steht folgendes Import Statement in jedem Jupyter Notebook das im entferntesten etwas mit Datenanalyse zu tun hat. Achtung in nächster Zelle wird NumPy gleich mit importiert." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "f8d54007-5094-4d34-b5ce-11a62d367f53", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-67eb623e3d643f2d", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "markdown", - "id": "e7b78221-3568-45c5-964f-422b2668f4e5", - "metadata": { - "jp-MarkdownHeadingCollapsed": true, - "nbgrader": { - "grade": false, - "grade_id": "cell-30de8243b097dfdc", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "# First plot\n", - "\n", - "Wie dem [Getting Started](https://matplotlib.org/stable/users/getting_started/index.html#getting-started) Beispiel zu entnehmen, wollen wir einmal die Sinus Funktion plotten.\n", - "\n", - "Dazu brauchen wir zwei Attribute:\n", - "1. Die x-Skala - Dies kann die Länge eines Datensets sein, oder ein allegemeiner Linespace. Aufjedenfall eine Liste bzw. Array.\n", - "2. Die y-Skala - Im Allgemeinen die Werte eines zu plottenden Datensets. Aufjedenfall auch eine Liste bzw. Array.\n", - "\n", - "Plotten wir im Folgenden die Sinus Funktion. Eine der schönen Eigenschaften der Sinus Funktion ist, dass diese sich nach dem Intervall $[0...2\\pi]$ wiederholt. Daher enthält die x-Skala einen linespace von $[0...2\\pi]$. Als Wert für $\\pi$ wird die NumPy Konstante [np.pi](https://numpy.org/doc/stable/reference/constants.html#numpy.pi) verwendet.\n", - "\n", - "Auf der y-Skala plotten wir im folgenden das zuvor berechnete Array mit den Sinus Werten. Die Hierfür verwendete Funktion ist [np.sin](https://numpy.org/doc/stable/reference/generated/numpy.sin.html). \n", - "\n", - "Das `plt` Objekt hat mehrere Funktionen die in einer bestimmten Reihenfolge aufgerufen werden müssen. Dabei können zuerst mehrere plots mit [plt.plot](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html) definiert werden. Zum Schluss wird zur Ausgabe [plt.show](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.show.html) aufgerufen." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "72fa4224-095a-4d6a-9a9f-e1c136a79115", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-2eaf77b2d04abff1", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - }, - "scrolled": true - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "x = np.linspace(0, 2*np.pi, num=200) # Definiere einen linearen Bereich von 0 bis 2pi\n", - "y = np.sin(x) # Berechne den Sinus mit den Werten von x\n", - "\n", - "plt.plot(x, y) # Setze für die X-Achse x und für die Y-Achse y\n", - "plt.show() # Zeige den Plot" - ] - }, - { - "cell_type": "markdown", - "id": "b67896b4-8a1c-4c3f-92c7-7459f95916e0", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-1dd3b7172bc39b59", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "# Zwei Funktionen \n", - "\n", - "Wie bereits zuvor erwähnt lässt sich `plt.plot` mehr als einmal aufrufen. Wollen wir im folgenden den Kosinus mittels [np.cos](https://numpy.org/doc/stable/reference/generated/numpy.cos.html) dazu plotten. Dafür werden die Werte aus dem bereits definierten x wiederverwendet. Die Variabelen `y1 = np.sin(x)` & `y2 = np.cos(x)` enthälten die jeweiligen y werte. " - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "3ef7123c-255d-42ae-8ae6-d63cdcc6b032", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-2e9cc2ce95f1e20e", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "y1 = np.sin(x) # Sinus Werte mittels x berechnen\n", - "y2 = np.cos(x) # Kosinus Werte mittels x berechnen\n", - "\n", - "plt.plot(x, y1) # Plotte den Sinus\n", - "plt.plot(x, y2) # Plotte den Kosinus\n", - "\n", - "plt.show() # Zeige das Diagramm" - ] - }, - { - "cell_type": "markdown", - "id": "caf293fb-ee33-48d1-85f1-82cc3afca0cf", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-d1d50ca1d203ac29", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Aufgabe - Erster eigener Plot Square Root\n", - "\n", - "Analog zu voheriger Erklärung Plotten Sie im folgenden die Funktion Square Root Mathematisch definiert als $f(x) = \\sqrt x; \\quad x \\geq 0$.\n", - "\n", - "Gehen Sie dabei wie folgt vor:\n", - "1. Definieren Sie einen geeigneten [Linespace](https://numpy.org/doc/stable/reference/generated/numpy.linspace.html#numpy-linspace) für die Zahlenraum 0...100. (Tipp: Achten Sie auf die Definition! Die Wurzel ist nur für positive Zahlen definiert.)\n", - "2. Berechnen Sie mittels der Funktion [np.sqrt](https://numpy.org/doc/stable/reference/generated/numpy.sqrt.html#numpy.sqrt) die Werte für die Wurzel.\n", - "3. Plotten Sie das Ergebnis" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "94a1aacc-0c6f-443f-b11c-de8f3c6137bc", - "metadata": { - "nbgrader": { - "grade": true, - "grade_id": "cell-bae73642cf0a866a", - "locked": false, - "points": 3, - "schema_version": 3, - "solution": true, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# BEGIN SOLUTION\n", - "xs = np.linspace(0, 100, num=200)\n", - "ys = np.sqrt(xs)\n", - "plt.plot(xs, ys)\n", - "plt.show()\n", - "# END SOLUTION" - ] - }, - { - "cell_type": "markdown", - "id": "89a722de-8f9f-4d92-a3c1-867b61f4ddaf", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-998243908406c7d4", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "# Styling\n", - "\n", - "Da bei mehreren Plots der Überblick schnell verloren geht beschäftigen wir uns im folgenden mit dem Styling. Dabei gehen wir im Schnelldurchlauf durch alle Parameter.\n", - "\n", - "Die Grundlage für alle folgenden Plots werden in nächster Zelle gesetzt." - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "88f9cd6c-0347-4df4-9b5f-0cfb9b655a4c", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-a86ddac229c0bbbb", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [], - "source": [ - "x = np.linspace(0, 2*np.pi, num=200)\n", - "s = np.sin(x)\n", - "c = np.cos(x)" - ] - }, - { - "cell_type": "markdown", - "id": "3b164da6-f153-4e50-98f0-18c75f6adf19", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-e27c575962048d7b", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Farbe ändern\n", - "\n", - "Die Standard Farbe für den ersten Plot ist immer Blau. Um die Farbe zu verändern wird `plt.plot` der Parameter `color` übergeben. Dieser erwartet einen String. Für eine genauere Erläuterung lesen Sie die Dokumentation zu [Specifying color](https://matplotlib.org/stable/users/explain/colors/colors.html). Für dieses Notebook werden die Beispiele mit den \"Single Character Shorthands\" (Aus der Dokumentation zu entnehmen) ausgestattet.\n", - "\n", - "Plotten wir den Sinus nun in Rot:" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "de303799-2d02-4793-a40b-f5e528bc6f42", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-1ec79feac73af81f", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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sUAFjojI5UpIMKvCfvIJbNxoO42I8dprcOoU3H473HKL7TRFTgWOiMjlqlED/vtf09YmnOIOjhyBSZNM2wd7b0AFjohI4cj+EJkzR5twin2TJplNNW+4AVq2tJ3GChU4IiKFoVEj+Ne/zHo4GosjNp04YW5PgZk55ednN48lKnBERArLU0+ZxxkzYN8+u1nEd82aBSkpcPXV8OCDttNYowJHRKSw/OMf0KQJnDwJL79sO434olOnYPRo0x44EIoXt5vHIhU4IiKFxc8vtxdn0iSzT5VIUZozB3btgooVoWtX22msUoEjIlKYmjeHm26C48dzx0GIFIXMTBg50rSfeAJKlLCbxzIVOCIihcnPD5580rTHj4e0NLt5xHe8/z78/LPZH61HD9tprFOBIyJS2P7zH6hd2xQ3b7xhO434gqwseO450+7bF0qXthrHHajAEREpbP7+kJho2q++am5XibjS4sWwaROEhEDv3rbTuAUVOCIirvDgg1CtGvzxB0ydajuNeDOnM7f3plcvKFPGahx34dIC59ChQ7Rv356QkBDKlClDly5dOHbs2AVfc+edd+Ln55fn6PG3e4m7d++mVatWlCxZkooVKzJgwABOnz7tyrciIlIwxYrlrm48ZoyZOi7iCp99Bt99ByVLmttTAri4wGnfvj2bN29m2bJlLFmyhFWrVtG9e/eLvq5bt27s378/53jxjFVBMzMzadWqFSdPnuSbb75h9uzZzJo1i2HDhrnyrYiIFFynThARYXZ1fvNN22nEGzmdMGKEaT/6qNndXgDwczqdTldceMuWLdSpU4d169bRqFEjAJYuXUrLli3Zu3cvERER53zdnXfeSf369Rk7duw5v//JJ5/w73//m3379hEWFgbApEmTGDRoEH/88QeBgYEXzeZwOAgNDSUtLY2QkJBLe4MiIvnx6qtmt/FrroGtW03PjkhhWbkS7rwTAgPNHmjn+Wz1FgX5/HZZD87q1aspU6ZMTnEDEBMTg7+/P2vWrLnga9955x3Kly/PDTfcQGJiIsfPGKC3evVq6tatm1PcAMTGxuJwONi8efM5r5eRkYHD4chziIgUie7doXx5+PVXmD/fdhrxNtljb7p08fripqBcVuCkpKRQsWLFPM8VK1aMcuXKkZKSct7XPfTQQ7z99tssX76cxMRE3nrrLTp06JDnumcWN0DO1+e7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EfE6KnAKWVBQEMOHDycoKMh2FLej382F6fdzYfr9XJh+P+en382FeevvxycHGYuIiIh3Uw+OiIiIeB0VOCIiIuJ1VOCIiIiI11GBIyIiIl5HBU4hmjBhAlWrViU4OJioqCjWrl1rO5LbWLVqFXfffTcRERH4+fmxcOFC25HcxqhRo7j55pspXbo0FStWpE2bNmzbts12LLcxceJEbrzxxpxFyKKjo/nkk09sx3JLo0ePxs/Pj759+9qO4haefvpp/Pz88hy1atWyHcut/P7773To0IErr7ySEiVKULduXb777jvbsQqFCpxCMn/+fBISEhg+fDgbNmygXr16xMbGcuDAAdvR3EJ6ejr16tVjwoQJtqO4nZUrVxIfH8+3337LsmXLOHXqFM2aNSM9Pd12NLdw9dVXM3r0aNavX893333HXXfdRevWrdm8ebPtaG5l3bp1TJ48mRtvvNF2FLdy/fXXs3///pzjq6++sh3JbRw+fJgmTZpQvHhxPvnkE3766SdefvllypYtazta4XBKoWjcuLEzPj4+5+vMzExnRESEc9SoURZTuSfAuWDBAtsx3NaBAwecgHPlypW2o7itsmXLOqdNm2Y7hts4evSo89prr3UuW7bMeccddzgff/xx25HcwvDhw5316tWzHcNtDRo0yHnbbbfZjuEy6sEpBCdPnmT9+vXExMTkPOfv709MTAyrV6+2mEw8UVpaGgDlypWznMT9ZGZmMm/ePNLT04mOjrYdx23Ex8fTqlWrPP8PEuOXX34hIiKC6tWr0759e3bv3m07kttYtGgRjRo14v7776dixYo0aNCAqVOn2o5VaFTgFIKDBw+SmZlJWFhYnufDwsJISUmxlEo8UVZWFn379qVJkybccMMNtuO4jY0bN3LFFVcQFBREjx49WLBgAXXq1LEdyy3MmzePDRs2MGrUKNtR3E5UVBSzZs1i6dKlTJw4kZ07d3L77bdz9OhR29Hcwo4dO5g4cSLXXnstn376KT179qRPnz7Mnj3bdrRC4ZO7iYu4q/j4eDZt2qRxAn9Ts2ZNkpOTSUtL4/3336djx46sXLnS54ucPXv28Pjjj7Ns2TKCg4Ntx3E7LVq0yGnfeOONREVFUaVKFd599126dOliMZl7yMrKolGjRowcORKABg0asGnTJiZNmkTHjh0tp7t86sEpBOXLlycgIIDU1NQ8z6emphIeHm4plXiaXr16sWTJEpYvX87VV19tO45bCQwMpEaNGjRs2JBRo0ZRr149XnvtNduxrFu/fj0HDhzgpptuolixYhQrVoyVK1cybtw4ihUrRmZmpu2IbqVMmTJcd911bN++3XYUt1CpUqWz/pFQu3Ztr7mNpwKnEAQGBtKwYUOSkpJynsvKyiIpKUnjBOSinE4nvXr1YsGCBXzxxRdUq1bNdiS3l5WVRUZGhu0Y1jVt2pSNGzeSnJycczRq1Ij27duTnJxMQECA7Yhu5dixY/z6669UqlTJdhS30KRJk7OWpPj555+pUqWKpUSFS7eoCklCQgIdO3akUaNGNG7cmLFjx5Kenk7nzp1tR3MLx44dy/Ovpp07d5KcnEy5cuWoXLmyxWT2xcfHM2fOHD788ENKly6dM24rNDSUEiVKWE5nX2JiIi1atKBy5cocPXqUOXPmsGLFCj799FPb0awrXbr0WWO1SpUqxZVXXqkxXMATTzzB3XffTZUqVdi3bx/Dhw8nICCABx980HY0t9CvXz9uvfVWRo4cyQMPPMDatWuZMmUKU6ZMsR2tcNiexuVNxo8f76xcubIzMDDQ2bhxY+e3335rO5LbWL58uRM46+jYsaPtaNad6/cCOGfOnGk7mlt45JFHnFWqVHEGBgY6K1So4GzatKnzs88+sx3LbWmaeK62bds6K1Wq5AwMDHReddVVzrZt2zq3b99uO5ZbWbx4sfOGG25wBgUFOWvVquWcMmWK7UiFxs/pdDot1VYiIiIiLqExOCIiIuJ1VOCIiIiI11GBIyIiIl5HBY6IiIh4HRU4IiIi4nVU4IiIiIjXUYEjIiIiXkcFjoiIiHgdFTgiIiLidVTgiIiIiNdRgSMiIiJeRwWOiIiIeJ3/B6tf5nsfKmQJAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(x, s, color='r') # Plot mit der Farbe Rot\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "dcf5f847-7d69-4b29-81a2-c2dc2c0b3e90", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-6d559d4604922bd9", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Titel für den Plot setzen\n", - "\n", - "Dafür wird [plt.title](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.title.html) der Paramter wird als String übergeben:" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "id": "aa2a1bba-3ec6-4097-874f-508a7b11c68f", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-106786a4fca81b67", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(x, s)\n", - "plt.title(\"Sinus Plot\") # Titel Setzen\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "f5de5666-aa6f-43cc-a230-8c54779b1f73", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-8d7bed3592e18530", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Legende und Labels\n", - "\n", - "Um eine Legende anzuzeigen muss vor `plt.show` die Funktion [plt.legend](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.legend.html) aufgerufen werden. Damit dies Wirkung zeigt braucht muss jeder Plot mit dem Parameter `label` (als String) ausgezeichnet werden. Plotten wir im Folgenden den Sinus und Kosinus mit entsprechenden Labels." - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "id": "b6962f15-dd2d-45fe-895a-e388687847aa", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-b1d037b9a275622c", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(x, s, label=\"Sinus\") # Plotte Sinus mit label Sinus\n", - "plt.plot(x, c, label=\"Kosinus\") # Plotte Kosinus mit label Kosinus\n", - "plt.legend() # Füge die Legende ein\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "712b286b-d173-4aef-8bc0-04e067659a86", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-63bbc82ff5e6892a", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Linestyle\n", - "\n", - "Die letze wichtige Eigenschaft ist das Setzen eines Linestyles. Dazu wird `plt.plot` der parameter `linestyle` als String übergeben. Entnehmen Sie die verschiednen Linestyles bitte der Dokumentation zu [Linestyles](https://matplotlib.org/stable/gallery/lines_bars_and_markers/linestyles.html).\n", - "\n", - "Sinus als `dashed` line:" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "id": "bc6a2a76-51c3-46d8-9e07-3c3b3f2a571f", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-402e40ea2ceafc35", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(x, s, linestyle=\"dashed\")\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "14d3e8ec-dec6-4d42-90a3-86ffdd11d061", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-88e04ff7645c08cd", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Aufgabe - Multiplot\n", - "\n", - "In der nächsten Aufgabe wollen wir gleich zwei Funktionen Plotten. $f(x) = \\sqrt x$ und $g(x) = x^2$.\n", - "\n", - "Gehen Sie dabei wie folgt vor:\n", - "1. Definieren Sie einen geeigneten [Linespace](https://numpy.org/doc/stable/reference/generated/numpy.linspace.html#numpy-linspace) für die Zahlenraum 0...3. (Tipp: Achten Sie auf die Definition! Die Wurzel ist nur für positive Zahlen definiert.)\n", - "2. Berechnen Sie mittels der Funktion [np.sqrt](https://numpy.org/doc/stable/reference/generated/numpy.sqrt.html#numpy.sqrt) die Werte für die Wurzel.\n", - "3. Berechnen Sie mittels der Funktion [np.square](https://numpy.org/doc/stable/reference/generated/numpy.square.html#numpy-square) die Werte für die Quadrat Zahlen\n", - "4. Geben Sie den beiden Plots die Farben Grün & Rot. Nutzen Sie gerne die [Color Shorthands](https://matplotlib.org/stable/users/explain/colors/colors.html) aus der Dokumentation.\n", - "5. Plotten Sie die Square Funktion mit dem Linestyle `dashdot`, wie der Dokumentation zu entnehmen [Linestyles](https://matplotlib.org/stable/gallery/lines_bars_and_markers/linestyles.html)\n", - "6. Geben Sie den beiden Plots angemessene Labels.\n", - "7. Fügen Sie die Legende hinzu.\n", - "8. Plotten Sie das Ergebnis." - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "id": "b354952b-f922-42a7-914a-cda9522dff69", - "metadata": { - "nbgrader": { - "grade": true, - "grade_id": "cell-6bb6ab1d60fffde5", - "locked": false, - "points": 8, - "schema_version": 3, - "solution": true, - "task": false - }, - "scrolled": true - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# BEGIN SOLUTION\n", - "xt = np.linspace(0, 3, num=200)\n", - "sqrt = np.sqrt(xt)\n", - "square = np.square(xt)\n", - "\n", - "plt.plot(xt, sqrt, color='r', label=\"Square Root\")\n", - "plt.plot(xt, square, color='g', label=\"Square Function\", linestyle=\"dashdot\")\n", - "plt.legend()\n", - "plt.show()\n", - "# END SOLUTION" - ] - }, - { - "cell_type": "markdown", - "id": "0f9041af-6d24-4786-969a-5f8fb9b5ba3a", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-486bea96505ad0a6", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "---\n", - "\n", - "# Plot Types\n", - "\n", - "Im folgenden Kapitel beschäftigen wir uns mit verschiedensten Plot typen." - ] - }, - { - "cell_type": "markdown", - "id": "4ffad0de-cd56-47e1-b327-7c9b16d46865", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-79e43d78c9874975", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Line Plots\n", - "\n", - "Line Plots haben wir im voherigen Kapitel bereits kennengelernt. Diese können mittels `plt.plot` augerufen werden.\n", - "\n", - "Beispiel Sinus:" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "id": "2375e035-4413-4cc5-875d-5463685299f4", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-b48b1eec8fe65537", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "x = np.linspace(0, 2*np.pi, num=200)\n", - "y = np.sin(x) \n", - "\n", - "plt.plot(x, y) \n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "d5893a0a-65be-418b-889c-ee5d48ed1c9e", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-d81b654168ec4bc8", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Bar Charts\n", - "\n", - "Beliebt sind Barcharts. Dazu werden aber mehrere Parameter benötigt. Da einfache mathematische Funktionen bei dieser Art Plot keinen Sinn ergeben.\n", - "\n", - "Konsultieren wir dafür folgendes Beispiel.\n", - "\n", - "Wir wollen wissen wie viele Kinder an einer Grundschule in jeder Klassenstufe sind.\n", - "Dazu benötigen wir 2 Listen.\n", - "1. Die Klassenstufen\n", - "2. Die Anzahl an Kinder in der Klassenstufe" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "id": "bc2b7a3f-0a8d-4f33-9c37-99850e33f6c6", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-3767e976a92e292a", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [], - "source": [ - "classes = [\"1. Klasse\", \"2. Klasse\", \"3. Klasse\", \"4. Klasse\"]\n", - "kids = [42, 30, 26, 45]" - ] - }, - { - "cell_type": "markdown", - "id": "b484d826-1539-4650-891d-d80ab60f4e4f", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-a702a6b994c5809e", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "Plotten wir die Werte nun als Bar Chart mit der Funktion `plt.bar`:" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "id": "2ceb28ef-7db1-4d2e-993b-5a0fa17b0785", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-8c604c68ae96c752", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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XPY1D/HRzRoaGmLy5MkR8X/fdZ/o7998oLW1NYYPHx6PP/547Ny5M5YvXx5/8Rd/ET/4wQ8iIuLo0aMxd+7cmDx5crz66quxZcuWWLRoUdsf6Lv++utj+PDhsW3btqivr4/bbrst+vbtGxER//Ef/xG/9Vu/FdXV1fHqq6/GY489Fps3b47Fixef5s/Ama2pqSkiIgYOHNjhe3ft2hVXXHFFjB07Nv7xH/8x+vfv/5FjDx8+HBMnToxnnnkmXn/99Vi0aFF8+ctfjpdeeikiIn7605/GddddFzfddFP867/+a2zcuDHmzZsXKaVP3PcXXngh5s+fHzfffHPs3LkzHnjggVi9enXcfffdnfiM9A7Hjh2LtWvXRnNzc6f+7IO9PbPU1NTErFmzYvr06ac0j33NKHFKIiKtW7eu0/cWFxenMWPGpObm5uOu79mzJ0VE+pd/+ZePnKOmpiZVV1enlFJ69913U0SkjRs3nnBseXl5Wr169QmvLVy4MC1atKjduRdeeCEVFhamX/ziFyf5EfUux44dS7NmzUpXXHFFh+77YN+Ki4vTlClT0tGjR48b88///M8pItL//u//fuQ8s2bNSn/2Z3+WUkqpvr4+RUR66623jhv3Sfs+bdq09PWvf73duUceeSSdd955HfioeodXX301lZWVpT59+qTKysr0zDPPdOh+e3vmefTRR9O4cePavk5Nnjw53XzzzR2aw77mJz5O0anGx7x581JhYWFauXLlcddPFB/f+c530iWXXJLOOeecVFZWlvr27Zsuu+yytus33HBDKikpSVdffXW699570/79+9uu3X777amoqChNmzYt1dbWpjfffLPt2qWXXpqKi4tTWVlZ23HWWWeliEg7d+7s1MfX0/3xH/9xuuCCC9K+ffs6dN8H+3bNNdekoqKi9IMf/OC4MR/+Qnb06NF05513pnHjxqWzzz47lZWVpaKiovS7v/u7bdenTZuWysvL0zXXXJMefPDB9LOf/axtvo/b93POOSeVlpa229vS0tIUESeM3t6spaUl7d69O23fvj3ddttt6ZxzzklvvPHGSd9vb88se/fuTYMHD06vvPJK27lTiQ/7mo/4OEWnGh/r1q1Lq1evToWFhelv/uZv2l3/cHw8+uijqbS0NNXV1aWXX3457d69Oy1atChNmDCh3X0vv/xy+vrXv56qqqpS//7905YtW9qu7dq1K61cuTJdeeWVqbi4OP393/99SimlMWPGpCVLlqTdu3cfd7S0tHTq4+vJampq0vDhw9N//ud/dvjeX963O++8MxUVFaXHHnus3ZgPfyGrra1NgwYNSo888kjasWNH2r17d5o1a1aaM2dO2z2tra1p8+bNafny5eniiy9O5557brv1fdS+l5aWpm984xsn3Ntjx451/JPTi0ybNu24V/w+jr09s6xbty5FROrTp0/bERGpoKAg9enT54SvYJyIfc1PfJyiroiPlFJ6+OGHU58+fdJf//Vft13/cHwsXrw4TZ06td0c06ZNOy4+ftmkSZPSkiVLTnjt2muvTbNnz04ppfT7v//7adq0aZ36OHqT1tbWVFNTk4YNG5b+/d//vVNzfHjf7rrrrlRUVJTWrl3bNubDX8iuvvrqdNNNN7VdP3bsWBo9enS7L2S/7OjRo+n8888/Llg/8Mv7/vnPf77d3Px/U6ZMSQsWLDjp8fb2zHLw4MH02muvtTsuvfTS9Ad/8AfptddeO+l57Gt+p+Wv2vZ27733Xrz55pttj/fs2RM7duyIgQMHxsiRIyMiYtmyZfHf//3f8fDDD5/UnF/+8pejsLAwFixYECml+MpXvnLcmNGjR8fDDz8czz77bIwaNSoeeeSR2LZtW9tvx+zZsycefPDB+NKXvhTDhg2LXbt2xe7du2P+/Pnxi1/8Ir7yla/ENddcE6NGjYqf/OQnsW3btqiuro6IiK9+9asxadKkWLx4cfzhH/5hlJWVxc6dO+O5556L73znO6f6KesxampqYs2aNfHUU09FeXl5NDQ0REREZWVl9OvXLyIi5s+fH+eff37U1tae1Jx/+Zd/GX369Inrr78+Wltb47rrrjtuzOjRo+OJJ56IH//4x3H22WfHypUro7GxMcaOHRsRES+++GJs2LAhrrrqqhg8eHC8+OKL8c4778RFF130sfseEbF8+fK4+uqrY+TIkXHNNddEYWFhvPLKK/H666/HXXfd1RWfth5h2bJlMXPmzBg5cmQcOnQo1qxZExs3boxnn322bYy97VnKy8uP+2cJysrKYtCgQe3O29czUHfXT0/0QQF/+Pjl76AWLFiQJk+e/LHzxAleNVmzZk3q06dPWrFixXE1fvjw4XTDDTekysrKNGDAgPQnf/In6bbbbmt75aOhoSHNnTs3nXfeeam4uDhdcMEFafny5enYsWOppaUlXXvttWnEiBGpuLg4DRs2LC1evLjdm0lfeumldOWVV6b+/funsrKyNH78+HT33Xd3wWes5zjRvkZEWrVqVduYyZMnf+x3yx/1RuFvfOMbqU+fPun73//+cd9Fvfvuu2nOnDmpf//+afDgwelrX/tamj9/ftt3UTt37kwzZsxI5557biopKUmf+cxn0t/+7d+mlD5+3z+wfv369PnPfz7169cvVVRUpMsvvzw9+OCDXfEp6zFuuummdMEFF6Ti4uJ07rnnpmnTpqV/+qd/ajfG3vZ8J3rPh3098xSklFLm3gEAPsX8Ox8AQFbiAwDISnwAAFmJDwAgK/EBAGQlPgCArMQHAJCV+AAAshIfAEBW4gMAyEp8AABZiQ8AIKv/BxDcjOg8V4UdAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.bar(classes, kids)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "a46c7700-d039-4345-b59f-4fc0d0400e95", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-c2444cb0f1af6626", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "### Bessere Datenrepresentation\n", - "\n", - "Da die Daten aus `classes` & `kids` miteinander eine Verbindung teilen wäre die Repräsentation mittels Dictionary die klügere Wahl um keine Fehler in den Plot zu bringen.\n", - "\n", - "Mittels der `.keys` & `.values` Funktion auf dem Dictionary lassen sich dann die Daten gezielt plotten.\n", - "\n", - "Schauen Sie sich daher folgendes Beispiel an:" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "id": "63a994e2-4f9c-44c2-940a-6ea202b50e44", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-1777b8fcd5bd30c4", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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XPY1D/HRzRoaGmLy5MkR8X/fdZ/o7998oLW1NYYPHx6PP/547Ny5M5YvXx5/8Rd/ET/4wQ8iIuLo0aMxd+7cmDx5crz66quxZcuWWLRoUdsf6Lv++utj+PDhsW3btqivr4/bbrst+vbtGxER//Ef/xG/9Vu/FdXV1fHqq6/GY489Fps3b47Fixef5s/Ama2pqSkiIgYOHNjhe3ft2hVXXHFFjB07Nv7xH/8x+vfv/5FjDx8+HBMnToxnnnkmXn/99Vi0aFF8+ctfjpdeeikiIn7605/GddddFzfddFP867/+a2zcuDHmzZsXKaVP3PcXXngh5s+fHzfffHPs3LkzHnjggVi9enXcfffdnfiM9A7Hjh2LtWvXRnNzc6f+7IO9PbPU1NTErFmzYvr06ac0j33NKHFKIiKtW7eu0/cWFxenMWPGpObm5uOu79mzJ0VE+pd/+ZePnKOmpiZVV1enlFJ69913U0SkjRs3nnBseXl5Wr169QmvLVy4MC1atKjduRdeeCEVFhamX/ziFyf5EfUux44dS7NmzUpXXHFFh+77YN+Ki4vTlClT0tGjR48b88///M8pItL//u//fuQ8s2bNSn/2Z3+WUkqpvr4+RUR66623jhv3Sfs+bdq09PWvf73duUceeSSdd955HfioeodXX301lZWVpT59+qTKysr0zDPPdOh+e3vmefTRR9O4cePavk5Nnjw53XzzzR2aw77mJz5O0anGx7x581JhYWFauXLlcddPFB/f+c530iWXXJLOOeecVFZWlvr27Zsuu+yytus33HBDKikpSVdffXW699570/79+9uu3X777amoqChNmzYt1dbWpjfffLPt2qWXXpqKi4tTWVlZ23HWWWeliEg7d+7s1MfX0/3xH/9xuuCCC9K+ffs6dN8H+3bNNdekoqKi9IMf/OC4MR/+Qnb06NF05513pnHjxqWzzz47lZWVpaKiovS7v/u7bdenTZuWysvL0zXXXJMefPDB9LOf/axtvo/b93POOSeVlpa229vS0tIUESeM3t6spaUl7d69O23fvj3ddttt6ZxzzklvvPHGSd9vb88se/fuTYMHD06vvPJK27lTiQ/7mo/4OEWnGh/r1q1Lq1evToWFhelv/uZv2l3/cHw8+uijqbS0NNXV1aWXX3457d69Oy1atChNmDCh3X0vv/xy+vrXv56qqqpS//7905YtW9qu7dq1K61cuTJdeeWVqbi4OP393/99SimlMWPGpCVLlqTdu3cfd7S0tHTq4+vJampq0vDhw9N//ud/dvjeX963O++8MxUVFaXHHnus3ZgPfyGrra1NgwYNSo888kjasWNH2r17d5o1a1aaM2dO2z2tra1p8+bNafny5eniiy9O5557brv1fdS+l5aWpm984xsn3Ntjx451/JPTi0ybNu24V/w+jr09s6xbty5FROrTp0/bERGpoKAg9enT54SvYJyIfc1PfJyiroiPlFJ6+OGHU58+fdJf//Vft13/cHwsXrw4TZ06td0c06ZNOy4+ftmkSZPSkiVLTnjt2muvTbNnz04ppfT7v//7adq0aZ36OHqT1tbWVFNTk4YNG5b+/d//vVNzfHjf7rrrrlRUVJTWrl3bNubDX8iuvvrqdNNNN7VdP3bsWBo9enS7L2S/7OjRo+n8888/Llg/8Mv7/vnPf77d3Px/U6ZMSQsWLDjp8fb2zHLw4MH02muvtTsuvfTS9Ad/8AfptddeO+l57Gt+p+Wv2vZ27733Xrz55pttj/fs2RM7duyIgQMHxsiRIyMiYtmyZfHf//3f8fDDD5/UnF/+8pejsLAwFixYECml+MpXvnLcmNGjR8fDDz8czz77bIwaNSoeeeSR2LZtW9tvx+zZsycefPDB+NKXvhTDhg2LXbt2xe7du2P+/Pnxi1/8Ir7yla/ENddcE6NGjYqf/OQnsW3btqiuro6IiK9+9asxadKkWLx4cfzhH/5hlJWVxc6dO+O5556L73znO6f6KesxampqYs2aNfHUU09FeXl5NDQ0REREZWVl9OvXLyIi5s+fH+eff37U1tae1Jx/+Zd/GX369Inrr78+Wltb47rrrjtuzOjRo+OJJ56IH//4x3H22WfHypUro7GxMcaOHRsRES+++GJs2LAhrrrqqhg8eHC8+OKL8c4778RFF130sfseEbF8+fK4+uqrY+TIkXHNNddEYWFhvPLKK/H666/HXXfd1RWfth5h2bJlMXPmzBg5cmQcOnQo1qxZExs3boxnn322bYy97VnKy8uP+2cJysrKYtCgQe3O29czUHfXT0/0QQF/+Pjl76AWLFiQJk+e/LHzxAleNVmzZk3q06dPWrFixXE1fvjw4XTDDTekysrKNGDAgPQnf/In6bbbbmt75aOhoSHNnTs3nXfeeam4uDhdcMEFafny5enYsWOppaUlXXvttWnEiBGpuLg4DRs2LC1evLjdm0lfeumldOWVV6b+/funsrKyNH78+HT33Xd3wWes5zjRvkZEWrVqVduYyZMnf+x3yx/1RuFvfOMbqU+fPun73//+cd9Fvfvuu2nOnDmpf//+afDgwelrX/tamj9/ftt3UTt37kwzZsxI5557biopKUmf+cxn0t/+7d+mlD5+3z+wfv369PnPfz7169cvVVRUpMsvvzw9+OCDXfEp6zFuuummdMEFF6Ti4uJ07rnnpmnTpqV/+qd/ajfG3vZ8J3rPh3098xSklFLm3gEAPsX8Ox8AQFbiAwDISnwAAFmJDwAgK/EBAGQlPgCArMQHAJCV+AAAshIfAEBW4gMAyEp8AABZiQ8AIKv/BxDcjOg8V4UdAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Definiere ein Dictionary welches die Anzahl der Schüler ihrer Klasse zuweist \n", - "school = { \n", - " \"1. Klasse\": 42,\n", - " \"2. Klasse\": 30,\n", - " \"3. Klasse\": 26,\n", - " \"4. Klasse\": 45,\n", - "}\n", - "\n", - "plt.bar(school.keys(), school.values()) # Plotte mit den Werten des Dictionarys\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "3371f47f-319b-4387-bcca-ae2363fe0662", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-d2c659803a58f15e", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "### Styling\n", - "\n", - "Bar plots können auch gestyled werden. Hierzu wird dem Parameter `color` eine Liste mit farbwerten übergeben:" - ] - }, - { - "cell_type": "code", - "execution_count": 57, - "id": "ace35364-3865-4bbb-92c3-8d9804636329", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-a3604899d50585d2", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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7LG48MILY/DgwTFs2LCYNWtWYX0+at0jIp544om46KKLYtCgQfHLv/zLsXr16jh69GiXPqe+6uqrr47f/u3fjvHjx8cnPvGJuOOOO6KioiKef/75Lo1nbc8c7777blx33XXx7W9/O84+++zTGsu65iE+ellTU1NMnz49Iv7vf90n+/s37zt+/HiMHj06Hn300di1a1esWrUq/uIv/iK++93vRkTE0aNHY/78+TF9+vR45ZVXYtu2bbF06dLCH+i77rrrYvTo0bF9+/ZobGyMW2+9NQYOHBgREf/+7/8ev/VbvxV1dXXxyiuvxCOPPBJbt26NZcuW9fBX4MzW0tISERFDhw7t9LW7d++Oyy67LCZOnBj/+I//GBUVFR967uHDh2Pq1Knxve99L1577bVYunRpfO5zn4sXX3wxIiJ+8pOfxLXXXhs33nhj/Ou//mts3rw5FixYECmlj1335557LhYtWhQ33XRT7Nq1K+67775Yt25d3HHHHV34ivQPx44diw0bNkRbW1uX/uyDtT2z1NfXx9y5c2PWrFmnNY51zShxWiIibdy4scvXlpaWpgkTJqS2trYTju/duzdFRPqXf/mXDx2jvr4+1dXVpZRSeuedd1JEpM2bN5/03MrKyrRu3bqTHluyZElaunRph33PPfdcKi4uTj/72c9O8TPqX44dO5bmzp2bLrvssk5d9/66lZaWphkzZqSjR4+ecM4///M/p4hI//M///Oh48ydOzf92Z/9WUoppcbGxhQR6Uc/+tEJ533cus+cOTN9+ctf7rDvoYceSueee24nPqv+4ZVXXknl5eVpwIABqbq6On3ve9/r1PXW9szz8MMPp0mTJhXup6ZPn55uuummTo1hXfMTH6fpdONjwYIFqbi4OK1du/aE4yeLj29+85vpoosuSuecc04qLy9PAwcOTJdccknh+PXXX5/KysrSVVddle6666504MCBwrHbbrstlZSUpJkzZ6aGhob05ptvFo5dfPHFqbS0NJWXlxe2s846K0VE2rVrV5c+v77uj//4j9P555+f9u/f36nr3l+3hQsXppKSkvTd7373hHM+eEd29OjR9KUvfSlNmjQpnX322am8vDyVlJSk3/3d3y0cnzlzZqqsrEwLFy5M999/f/rpT39aGO+j1v2cc85JgwYN6rC2gwYNShFx0ujtz9rb29OePXvSjh070q233prOOeec9Prrr5/y9db2zLJv3740YsSI9PLLLxf2nU58WNd8xMdpOt342LhxY1q3bl0qLi5Of/3Xf93h+Afj4+GHH06DBg1Kd999d3rppZfSnj170tKlS9OUKVM6XPfSSy+lL3/5y6m2tjZVVFSkbdu2FY7t3r07rV27Nl1xxRWptLQ0/f3f/31KKaUJEyak5cuXpz179pywtbe3d+nz68vq6+vT6NGj03/8x390+tqfX7cvfelLqaSkJD3yyCMdzvngHVlDQ0MaNmxYeuihh9LOnTvTnj170ty5c9O8efMK1xw/fjxt3bo1rVq1Kl144YVp+PDhHeb3Yes+aNCg9JWvfOWka3vs2LHOf3H6kZkzZ57wiN9HsbZnlo0bN6aISAMGDChsEZGKiorSgAEDTvoIxslY1/zEx2nqjvhIKaUHH3wwDRgwIH3ta18rHP9gfCxbtixdfvnlHcaYOXPmCfHx86ZNm5aWL19+0mPXXHNNuvrqq1NKKf3+7/9+mjlzZpc+j/7k+PHjqb6+Po0aNSr927/9W5fG+OC63X777amkpCRt2LChcM4H78iuuuqqdOONNxaOHzt2LI0fP77DHdnPO3r0aDrvvPNOCNb3/fy6f/rTn+4wNv/fjBkz0uLFi0/5fGt7ZmltbU2vvvpqh+3iiy9Of/AHf5BeffXVUx7HuubXI3/Vtr97991348033yx8vHfv3ti5c2cMHTo0xo4dGxERK1eujP/6r/+KBx988JTG/NznPhfFxcWxePHiSCnF5z//+RPOGT9+fDz44IPx9NNPx7hx4+Khhx6K7du3F347Zu/evXH//ffHZz/72Rg1alTs3r079uzZE4sWLYqf/exn8fnPfz4WLlwY48aNix//+Mexffv2qKuri4iIL3zhCzFt2rRYtmxZ/OEf/mGUl5fHrl274plnnolvfvObp/sl6zPq6+tj/fr18cQTT0RlZWU0NTVFRER1dXUMHjw4IiIWLVoU5513XjQ0NJzSmH/5l38ZAwYMiOuuuy6OHz8e11577QnnjB8/Ph577LH44Q9/GGeffXasXbs2mpubY+LEiRER8cILL8SmTZviyiuvjBEjRsQLL7wQb7/9dlxwwQUfue4REatWrYqrrroqxo4dGwsXLozi4uJ4+eWX47XXXovbb7+9O75sfcLKlStjzpw5MXbs2Dh06FCsX78+Nm/eHE8//XThHGvbt1RWVp7wtgTl5eUxbNiwDvut6xmot+unL3q/gD+4/fz/oBYvXpymT5/+kePESR41Wb9+fRowYEBas2bNCTV++PDhdP3116fq6uo0ZMiQ9Cd/8ifp1ltvLTzy0dTUlObPn5/OPffcVFpams4///y0atWqdOzYsdTe3p6uueaaNGbMmFRaWppGjRqVli1b1uHFpC+++GK64oorUkVFRSovL0+TJ09Od9xxRzd8xfqOk61rRKQHHnigcM706dM/8n/LH/ZC4a985StpwIAB6Tvf+c4J/4t655130rx581JFRUUaMWJE+uIXv5gWLVpU+F/Url270uzZs9Pw4cNTWVlZ+sQnPpH+5m/+JqX00ev+vqeeeip9+tOfToMHD05VVVXp0ksvTffff393fMn6jBtvvDGdf/75qbS0NA0fPjzNnDkz/dM//VOHc6xt33ey13xY1zNPUUopZe4dAOAXmPf5AACyEh8AQFbiAwDISnwAAFmJDwAgK/EBAGQlPgCArMQHAJCV+AAAshIfAEBW4gMAyEp8AABZ/T8jzNwa/6NbLgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "school = { \n", - " \"1. Klasse\": 42,\n", - " \"2. Klasse\": 30,\n", - " \"3. Klasse\": 26,\n", - " \"4. Klasse\": 45,\n", - "}\n", - "\n", - "bar_colors = [\"red\", \"blue\", \"green\", \"yellow\"] # Farben definieren\n", - "\n", - "plt.bar(school.keys(), school.values(), color=bar_colors) # Farben übergeben\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "875f5a2f-9db1-49ba-a7ab-c4452f7b0cb7", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-964f579ce46a2882", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "### Y-Label\n", - "\n", - "Mit `plt.ylabel` (als String) lässt sich die y-Achse beschriften:" - ] - }, - { - "cell_type": "code", - "execution_count": 60, - "id": "bedf0e03-583a-4a22-857f-0d786f9365c4", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-21cee3bf50f011e1", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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Ouatt96qsLAwTZ06VcYY/epXv2pzn4yMDC1fvlwbNmxQv379tGLFClVVVXne5XTgwAE9++yzuv7665Wamqq9e/dq3759mjJlir788kv96le/0qRJk9SvXz999tlnqqqqUkFBgSTpvvvu04gRIzRr1iz97Gc/U0xMjHbv3q2NGzdq8eLF5/ots0ZhYaFWrlypV199VXFxcaqtrZUkud1ude/eXZI0ZcoUXXTRRSopKfHpmP/93/+t8PBwTZ48Wa2trbrlllva3CcjI0Nr1qzRO++8o549e2rhwoWqq6vTgAEDJEnvvvuuysrKdO211yopKUnvvvuujh49qssuu6zDdZekOXPmaNy4cUpPT9ekSZMUFhamDz74QLt27dL8+fP98W0LecXFxRozZozS09PV2NiolStXatOmTdqwYYPnPqyrfeLi4tpcqiImJkaJiYle21nbEBPsksL/L/Nv3775r7upU6eaUaNGdXgctfNszsqVK014eLgpLS1t86+EkydPmmnTphm322169Ohh7rjjDnP//fd7npGpra01+fn5pnfv3iYyMtL07dvXzJkzx7S0tJjm5mZz8803mz59+pjIyEiTmppqZs2a5XUi73vvvWeuueYaExsba2JiYsygQYPMggUL/PAds0d76yrJLF261HOfUaNGdfgv+bOdpP3www+b8PBw88ILL7T5193nn39uJkyYYGJjY01SUpL5zW9+Y6ZMmeL5193u3bvN6NGjTa9evUxUVJS55JJLzB//+EdjTMfr/rU333zTXHXVVaZ79+4mPj7eDB8+3Dz77LP++JZZYfr06aZv374mMjLS9OrVy+Tm5pq//vWvXvdhXbuG9s6RYW1Di8sYY85zOwEAAPgF15EBAADWImQAAIC1CBkAAGAtQgYAAFiLkAEAANYiZAAAgLUIGQAAYC1CBgAAWIuQAQAA1iJkAACAtQgZAABgLUIGAABY6/8BUusx9D9MQCMAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "school = { \n", - " \"1. Klasse\": 42,\n", - " \"2. Klasse\": 30,\n", - " \"3. Klasse\": 26,\n", - " \"4. Klasse\": 45,\n", - "}\n", - "\n", - "bar_colors = [\"red\", \"blue\", \"green\", \"yellow\"]\n", - "\n", - "plt.bar(school.keys(), school.values(), color=bar_colors)\n", - "\n", - "plt.ylabel(\"Anzahl Kinder\") # Beschriften der Y-Achse\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "329b675f-75a8-49c2-a6cc-331882010127", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-32dabb34444f6190", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "### X-Label\n", - "\n", - "Analog Dazu die Beschriftung der X-Achse mit `plt.xlabel`." - ] - }, - { - "cell_type": "code", - "execution_count": 61, - "id": "212535af-d1db-4e08-bb9f-8e14d047cee7", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-3737280b071f9d91", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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POAdd9xR72IAAADcUadbFLRp08bl60OHDunHH39U06ZNJf18pd9zzjlHzZs311dffeWRQuuLWxQ0UtyioNHiFgWoH35ovceCWxQUFRU5H4899pguvPBCbd++XYcPH9bhw4e1fft2de/eXdOmTWuwbwAAAOBM3L5p5Pnnn6/FixfroosucmnPz8/X0KFDVVRU1KAFni1WZBopVmQaLVZkUD/80HqPBSsyv3bgwAGdPHmyRntVVZVKSkrcHQ4AAKDe3A4yKSkpuv3227Vp0yZnW35+vsaPH88p2AAA4HfldpD55z//qbi4OPXs2VNBQUEKCgrSxRdfrNjYWL366queqBEAAKBWbl9HJiYmRh988IF27typHTt2SJI6duyo9u3bN3hxAAAAp1PvC+K1b9+e8AIAALzK7SBTVVWlefPmKTs7WwcPHlR1dbVL/7///e8GKw4AAOB03A4yd955p+bNm6eBAweqc+fOcnCeKgAA8BK3g8zChQv19ttv65prrvFEPQAAAHXmdpAJDAxU27ZtPVELAHicYyqryN5ipnC1QzQ8t0+/vueee/Tss8/KzQsCAwAANDi3V2Ryc3O1atUqrVixQn/84x/VpEkTl/533nmnwYoDAAA4HbeDTNOmTXX99dd7ohYAAAC3uB1k5s6d64k6AAAA3Ob2MTIAAAC+ok4rMt27d1d2draaNWumiy666LTXjvn1zSQBAAA8qU5BZvDgwQoKCpIkpaWlebIeAACAOnOYOp5HffLkSQUEnD73bNu2TZ06dWqQwhpKWVmZIiMjVVpaqoiIiIYdnKsae4+HT/9nar3H01d24Doy3uPZ68gwr97jmXmt6+/vOh8jM3z48NP2b9u2TcnJyXWvEAAA4CzVOcisW7dOf/3rX2vt2759u5KTk3XppZc2WGEAAABnUufTrz/66CNdccUVioqK0uOPP+5s37Fjh5KTk9W7d28tWrTII0UCAADUps5B5oILLtAHH3yglJQURUVF6d5779WOHTvUr18/9erVS4sXL5a/v78nawUAAHDh1gXxevXqpaVLl+raa69VeXm55syZox49emjx4sVnPBAYAACgobmdPpKTk7VgwQLdcMMNuuqqq7RkyZIa91sCAAD4PdQ5yDRr1qzGhfA++eQTxcbGurQdPny4YSoDAAA4gzoHmVmzZnmwDAAAAPfVOciMHDnSk3UAAAC4jZtGAgAAaxFkAACAtQgyAADAWgQZAABgLYIMAACwVp3OWpo0aVKdB5w5c2a9iwEAAHBHnYLM5s2b6zTYby+YBwAA4El1CjKrVq3ydB0AAABu4xgZAABgLbdvGllRUaGsrCxlZ2fr4MGDqq6udun/6quvGqw4AACA03E7yNx6661avXq1brnlFrVo0YLjYgAAgNe4HWRWrFih999/X3369PFEPQAAAHXm9jEyzZo1U1RUlCdqAQAAcIvbQWbatGmaPHmyfvzxR0/UAwAAUGd1+mjpoosucjkWZvfu3YqNjVXr1q3VpEkTl203bdrUsBUCAACcQp2CTFpamofLAAAAcF+dgsyUKVM8XQcAAIDbuCAeAACwltunX1dVVemZZ57R22+/rb179+r48eMu/YcPH26w4gAAAE7H7RWZqVOnaubMmRo2bJhKS0s1adIkDRkyRH5+fnrkkUc8UCIAAEDt3A4yb7zxhubMmaN77rlHAQEBuvnmm/Xqq69q8uTJWr9+vSdqBAAAqJXbQaa4uFhdunSRJIWFham0tFSSdO211+r9999v2OoAAABOw+0g07JlSx04cECSdP755+vjjz+WJOXl5SkoKKhhqwMAADgNt4PM9ddfr+zsbEnSxIkT9fDDD6tdu3YaMWKExowZ0+AFAgAAnIrbZy1lZWU5/z1s2DC1atVKa9euVbt27TRo0KAGLQ4AAOB03A4yv9W7d2/17t27IWoBAABwi9sfLfn7+6tfv341rhdTUlIif39/t8aaMWOGevXqpfDwcDVv3lxpaWkqLCx02ebYsWPKyMhQdHS0wsLClJ6erpKSEnfLBgAAjZDbQcYYo8rKSvXs2VNffPFFjT53rF69WhkZGVq/fr1WrlypEydO6KqrrlJFRYVzm7vvvlvvvfeeFi1apNWrV2v//v0aMmSIu2UDAIBGyGHcTB/+/v765ptvlJWVpblz52r+/PkaPHiwSkpKFB8fr6qqqnoXc+jQITVv3lyrV6/WFVdcodLSUsXExGjBggUaOnSoJGnHjh264IILtG7dulo/0qqsrFRlZaXz67KyMiUkJKi0tFQRERH1rq1Wv7ojOH5nboZmdzG13uPhqZVjKpPrLWaKJyeXefUez8xrWVmZIiMjz/j7u14rMv7+/nr22Wf11FNPadiwYZo+fbrbqzG1+eWaNFFRUZKk/Px8nThxQqmpqc5tOnbsqMTERK1bt67WMWbMmKHIyEjnIyEh4azrAgAAvumsDvYdN26c2rVrpxtuuEFr1qw5q0Kqq6t11113qU+fPurcubOkny++FxgYqKZNm7psGxsbq+Li4lrHyczM1KRJk5xf/7IiAwAAGh+3g0yrVq1cDurt16+f1q9ff9anXmdkZOjzzz9Xbm7uWY0TFBTEhfkAAPgP4XaQKSoqqtHWtm1bbd68ud5nE02YMEHLly/XmjVr1LJlS2d7XFycjh8/riNHjrisypSUlCguLq5ezwUAABqPen+0dPz4cR08eFDV1dXONoebR0gaYzRx4kQtWbJEOTk5atOmjUt/jx491KRJE2VnZys9PV2SVFhYqL179yopKam+pQMAgEbC7SCzc+dOjR07VmvXrnVpN8bI4XC4ddZSRkaGFixYoGXLlik8PNx53EtkZKRCQkIUGRmpsWPHatKkSYqKilJERIQmTpyopKQkLsIHAADcDzKjR49WQECAli9frhYtWri9CvNrs2fPliT96U9/cmmfO3euRo0aJUl65pln5Ofnp/T0dFVWVqp///566aWX6v2cAACg8XD7OjKhoaHKz89Xx44dPVVTg6rreej1wsVGvIfryDRaXEem8eI6Mo2VZdeR6dSpk7777ruzKg4AAKAhuB1knnjiCd1///3KycnR999/r7KyMpcHAADA78XtY2R+ucpuSkqKS3t9DvYFAAA4G24HmVWrVnmiDgAAALe5HWT69u17yr7PP//8rIoBAABwh9vHyPzW0aNH9corr+jiiy9Wt27dGqImAACAOql3kFmzZo1GjhypFi1a6KmnnlJycrLWr1/fkLUBAACcllsfLRUXF2vevHl67bXXVFZWphtvvFGVlZVaunSpOnXq5KkaAQAAalXnFZlBgwapQ4cO2rp1q2bNmqX9+/fr+eef92RtAAAAp1XnFZkVK1bojjvu0Pjx49WuXTtP1gQAAFAndV6Ryc3N1dGjR9WjRw9dcskleuGFF7jCLwAA8Ko6B5nevXtrzpw5OnDggG6//XYtXLhQ8fHxqq6u1sqVK3X06FFP1gkAAFCD22cthYaGasyYMcrNzdVnn32me+65R1lZWWrevLmuu+46T9QIAABQq7O6jkyHDh305JNP6ptvvtGbb77ZUDUBAADUyVlfEE+S/P39lZaWpnfffbchhgMAAKiT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Weedd54+//zzhikWbpkxY4Z69eql8PBwNW/eXGlpaSosLHRrjNoC6NGjR9WvXz916tRJ33zzTQNXjTOZPXu2unbt6ryAWVJSklasWOHWGMyr78vKypLD4dBdd93l1n7M7e+LIOMDKioq1K1bN7344osNNuaPP/6o6667Tnl5ecrNzVXnzp0bbGzU3erVq5WRkaH169dr5cqVOnHihK666ipVVFTUe8xDhw6pX79+qqio0CeffKKWLVs2YMWoi5YtWyorK0v5+fnauHGjkpOTNXjwYH3xxRf1HpN59S15eXl6+eWX1bVr17Mei7n1LIKMDxgwYICmT5+u66+/vkHGO3LkiK688krt379fubm5atOmTa3bVVVVaezYsWrTpo1CQkLUoUMHPfvssy7b5OTk6OKLL1ZoaKiaNm2qPn366Ouvv5YkbdmyRf369VN4eLgiIiLUo0cPbdy40blvbm6uLr/8coWEhCghIUF33HHHWf0Ct9GHH36oUaNG6Y9//KO6deumefPmae/evcrPz6/XePv27dPll1+uyMhI/fvf/1Z0dHSt233//ffO1bhzzjlHXbp00ZtvvumyzeLFi9WlSxeFhIQoOjpaqampzvk53bxL0rJly9S9e3cFBwfrD3/4g6ZOnaqTJ0/W63uy0aBBg3TNNdeoXbt2at++vR577DGFhYVp/fr19RqPefUt5eXlGj58uObMmaNmzZqd1VjMrecRZBqZ4uJi9e3bV9LPqwGnuieV9PPtHlq2bKlFixZp27Ztmjx5sv77v/9bb7/9tiTp5MmTSktLU9++fbV161atW7dO48aNc958c/jw4WrZsqXy8vKUn5+vBx98UE2aNJEkffnll7r66quVnp6urVu36q233lJubq4mTJjg4VfAt5WWlkqSoqKi3N63sLBQffr0UadOnfTBBx8oLCzslNseO3ZMPXr00Pvvv6/PP/9c48aN0y233KJPP/1UknTgwAHdfPPNGjNmjLZv366cnBwNGTJExpgzzvsnn3yiESNG6M4779S2bdv08ssva968eXrsscfq8YrYr6qqSgsXLlRFRUW9bp3CvPqejIwMDRw4UKmpqWc1DnP7OzHwKZLMkiVL6r1vYGCg6dixo6moqKjRX1RUZCSZzZs3n3KMjIwMk56ebowx5vvvvzeSTE5OTq3bhoeHm3nz5tXaN3bsWDNu3DiX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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "school = { \n", - " \"1. Klasse\": 42,\n", - " \"2. Klasse\": 30,\n", - " \"3. Klasse\": 26,\n", - " \"4. Klasse\": 45,\n", - "}\n", - "\n", - "bar_colors = [\"red\", \"blue\", \"green\", \"yellow\"]\n", - "\n", - "plt.bar(school.keys(), school.values(), color=bar_colors)\n", - "\n", - "plt.ylabel(\"Anzahl Kinder\") # Beschriften der Y-Achse\n", - "plt.xlabel(\"Klassenstufen\") # Beschriften der X-Achse\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "147244b1-7bdc-40bc-9f87-93997f9742ed", - "metadata": { - "jp-MarkdownHeadingCollapsed": true, - "nbgrader": { - "grade": false, - "grade_id": "cell-230328a26793cddb", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "### Aufgabe\n", - "\n", - "Ihnen ist ein Datenset `sec_school` einer Hauptschule gegeben, welches die Klassenstufen von 5 bis 9 auf die Anzahl ihrer Schüler im Jahrgang mappt. \n", - "\n", - "Definieren Sie einen Barplot. Gehen Sie dabei wie folgt vor:\n", - "1. Definieren Sie ein geeignetes Farbschema zur Darstellung der Daten.\n", - "2. Extrahieren Sie die Schlüssel und Werte aus dem Datenset und übergeben Sie diese zusammen mit den Farbwerten an die Funktion `plt.bar`.\n", - "3. Setzen Sie geeignete Werte für die X & Y-Achse.\n", - "4. Setzen Sie einen geeigneten Titel für den Plot.\n", - "5. Plotten Sie den Werte" - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "id": "faec1d5e-c08c-4401-9fbd-5e324c045555", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-b954e989a8bbc2fa", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [], - "source": [ - "sec_school = {\n", - " '5. Klasse': 29,\n", - " '6. Klasse': 35,\n", - " '7. Klasse': 25,\n", - " '8. Klasse': 28,\n", - " '9. Klasse': 31\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "id": "0713b074-1eb9-4b5a-ae37-7ee237f814d9", - "metadata": { - "nbgrader": { - "grade": true, - "grade_id": "cell-8caba57a6ad34b87", - "locked": false, - "points": 5, - "schema_version": 3, - "solution": true, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHHCAYAAACle7JuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAABM/klEQVR4nO3deXxMd////+ckkUlEEkKIEEFstbW11Z4ShKJV1FJXa2tpiy66XbpY26KL6tWqan1Kq3a19NKiilhKe9lVLQ2l9qVUEkGQvH9/9Jf5GkmYYWJy9HG/3eZ2M2d5n9e8zzmTp7ONzRhjBAAAYEE+3i4AAADgRhFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFk/uEmT54sm82m/fv3O4bde++9uvfee71Wk6cNHTpUNpstz7d5sxISEmSz2ZSQkODtUnANpUuXVps2bTza5u22z7oju+8wuG7KlCmqVKmS8uXLp4IFC3q7nBtCkPGg+++/X/nz51dKSkqO03Tr1k3+/v46derUTS/vyJEjGjp0qLZs2XLTbVlN5pfXhg0bnIYnJSWpTp06CggI0OLFi71UHa507733qmrVqtmO279/v2w2m959991bXFX2/sn7VF6SGcrnzJnjNPzixYtq06aNfHx89Pnnn3upurxh2rRpGjt27E21sWvXLvXo0UMxMTH67LPP9Omnn3qmuFuMIONB3bp10/nz5zVv3rxsx587d04LFixQy5YtVbhw4Zte3pEjRzRs2LCb+tJ95JFHdP78eUVHR990Pd6WnJysFi1aaNu2bZo3b55atmwpSXrttdd0/vx5L1eX+xo3bqzz58+rcePG3i7FsjyxTyF3XLp0SR07dtR3332nzz77TL169fJ2SV7liSCTkJCgjIwMffDBB+rRo4c6derkmeJuMYKMB91///0KDg7WtGnTsh2/YMECpaamqlu3bje1nMuXL+vixYs31UYmX19fBQQE5LnTJO5KSUlRfHy8tmzZoq+//lqtWrVyjPPz81NAQIAXq7u+c+fO3XQbPj4+CggIkI/Prd2tMzIydOHChVu6TORdFy5cUEZGhkfbvHTpkjp16qSFCxdqwoQJ6t27t0fb/6c6ceKEJFn2lFImgowHBQYGqn379lq2bJljA7nStGnTFBwcrPvvv1+SdObMGT377LOKioqS3W5XuXLlNHr0aKcvgSsPvY8dO1YxMTGy2+36+OOPVbt2bUlSz549ZbPZZLPZNHnyZMe8P//8s1q2bKnQ0FDlz59fsbGx+vHHH51qcuX8ck7TZHdNRuZphB07dqhJkybKnz+/SpQoobfffjtLu3/88Yfuv/9+BQUFqWjRonruuee0ZMkSt6/zOHv2rFq2bKlNmzbp66+/VuvWrZ3GZ3c9i81mU//+/TV//nxVrVpVdrtdVapUyfZ01Jo1a1S7dm0FBAQoJiZGEyZMyLGWr776SjVr1lRgYKDCwsLUpUsXHTx40GmazD7auHGjGjdurPz58+uVV1655mfctWuXOnbsqLCwMAUEBKhWrVr65ptvnKa52fWRlpamIUOGqFy5crLb7YqKitJLL72ktLS0bPtu6tSpqlKliux2u0dP450+fVovvPCCqlWrpgIFCigkJEStWrXS1q1bnaa7ke1y48aNql+/vgIDA1WmTBl98sknTvNda59KTExUhw4dFBERoYCAAJUsWVJdunRRUlKS0/K/+uor1alTR/nz51ehQoXUuHFjff/991k+55o1axynQcuWLasvv/zSaXxO12G5ek2Iq+szO670l/T/+nrGjBl67bXXVKJECeXPn1/JycmSpNmzZzv2hyJFiuhf//qXDh8+fN3lX+ny5cvq0qWLFixYoPHjx+vxxx+/7jwLFixQ69atFRkZKbvdrpiYGI0YMULp6elO07myTpcuXaqGDRuqYMGCKlCggCpWrJhlf3V337ne905KSoqeffZZlS5dWna7XUWLFlXz5s21adMmSX+vn2+//VZ//PGHYzstXbq0JNf3i9KlS2vIkCGSpPDwcNlsNg0dOtQx/aJFi9SoUSMFBQUpODhYrVu31q+//nrdvvcGP28XcLvp1q2bvvjiC82aNUv9+/d3DD99+rSWLFmirl27KjAwUOfOnVNsbKwOHz6svn37qlSpUlq7dq0GDRqko0ePZjlkOGnSJF24cEF9+vSR3W7Xgw8+qJSUFA0ePFh9+vRRo0aNJEn169eXJC1fvlytWrVSzZo1NWTIEPn4+GjSpElq2rSpVq9erTp16uRaH/z1119q2bKl2rdvr06dOmnOnDl6+eWXVa1aNceRktTUVDVt2lRHjx7VM888o4iICE2bNk0rVqxwa1mpqalq1aqV1q9frzlz5rh1EeWaNWs0d+5cPfXUUwoODtZ//vMfdejQQQcOHHCc+vvll1/UokULhYeHa+jQobp8+bKGDBmiYsWKZWnvzTff1Ouvv65OnTrpscce08mTJ/Xhhx+qcePG2rx5s9P/ek6dOqVWrVqpS5cu+te//pVte5l+/fVXNWjQQCVKlNC///1vBQUFadasWWrXrp2+/vprPfjgg9f8nK6sj4yMDN1///1as2aN+vTpozvuuEO//PKL3n//ff3222+aP3++U5vLly93bONFihRxfInmJD09XX/++We2tV3t999/1/z58/XQQw+pTJkyOn78uCZMmKDY2Fjt2LFDkZGR11zWtfrhvvvuU6dOndS1a1fNmjVLTz75pPz9/dWrVy/dcccdGj58eLb71MWLFxUfH6+0tDQNGDBAEREROnz4sBYuXKgzZ84oNDRUkjRs2DANHTpU9evX1/Dhw+Xv76+ff/5Zy5cvV4sWLRy17NmzRx07dlTv3r3VvXt3ff755+rRo4dq1qypKlWq3NDnu5K76/NG+utKI0aMkL+/v1544QWlpaXJ399fkydPVs+ePVW7dm2NHDlSx48f1wcffKAff/wxy/6Qk8uXL6tr166aN2+exo0bp759+7r0+SdPnqwCBQpo4MCBKlCggJYvX67BgwcrOTlZ77zzjiS5tE5//fVXtWnTRtWrV9fw4cNlt9u1Z88ep/8QutvXrnzvPPHEE5ozZ4769++vypUr69SpU1qzZo127typGjVq6NVXX1VSUpIOHTqk999/X5JUoEABl/om09ixY/Xll19q3rx5Gj9+vAoUKKDq1atL+vsC4O7duys+Pl6jR4/WuXPnNH78eDVs2FCbN2++7v5+yxl41OXLl03x4sVNvXr1nIZ/8sknRpJZsmSJMcaYESNGmKCgIPPbb785Tffvf//b+Pr6mgMHDhhjjNm3b5+RZEJCQsyJEyecpl2/fr2RZCZNmuQ0PCMjw5QvX97Ex8ebjIwMx/Bz586ZMmXKmObNmzuGTZo0yUgy+/btcwyLjY01sbGx15zGGGNWrFhhJJkVK1Y4zSvJfPnll45haWlpJiIiwnTo0MEx7L333jOSzPz58x3Dzp8/bypVqpSlzexk1hQdHW3y5cvn1M7VhgwZYq7e1CUZf39/s2fPHsewrVu3Gknmww8/dAxr166dCQgIMH/88Ydj2I4dO4yvr69Tm/v37ze+vr7mzTffdFrOL7/8Yvz8/JyGZ/bRJ598cs3PmCkuLs5Uq1bNXLhwwTEsIyPD1K9f35QvX94x7GbWx5QpU4yPj49ZvXq107Izt9sff/zRMUyS8fHxMb/++qtL9WfWcK3XO++845j+woULJj093amNffv2GbvdboYPH+4YdiPb5XvvvefUD3fddZcpWrSouXjxojEm531q8+bNRpKZPXt2jp8zMTHR+Pj4mAcffDBL/Vfuh9HR0UaSWbVqlWPYiRMnjN1uN88//7xjWHbbbU6f++p91p31mR1X+yuzr8uWLWvOnTvnmPbixYumaNGipmrVqub8+fOO4QsXLjSSzODBg6+5/Mx2M/tq3LhxOU6bXX9cWUumvn37mvz58zv2I1fW6fvvv28kmZMnT+Y4jbv7jivfO6GhoaZfv345LtMYY1q3bm2io6OzDHdnv8jcxq78fCkpKaZgwYLm8ccfd5r/2LFjJjQ0NMvwvIBTSx7m6+urLl26aN26dU6H9qZNm6ZixYopLi5O0t+HXBs1aqRChQrpzz//dLyaNWum9PR0rVq1yqndDh06KDw83KUatmzZosTERD388MM6deqUo+3U1FTFxcVp1apVHj+HfaUCBQroX//6l+O9v7+/6tSpo99//90xbPHixSpRooTjNJskBQQEuHTY+ErHjx9XQECAoqKi3K6zWbNmiomJcbyvXr26QkJCHHWmp6dryZIlateunUqVKuWY7o477lB8fLxTW3PnzlVGRoY6derktD4jIiJUvnz5LEea7Ha7evbsed0aT58+reXLl6tTp05KSUlxtHvq1CnFx8crMTHxuofqXVkfs2fP1h133KFKlSo51d+0aVNJylJ/bGysKleufN36M5UuXVpLly7N8vrqq6+yTGu32x3X+aSnp+vUqVOOQ/qZh9ZvhJ+fn9P/6P39/dW3b1+dOHFCGzduvOa8mUdclixZkuP1TPPnz1dGRoYGDx6c5Tqlq08RVa5c2XHER/r70H7FihWd1snNcHd9Zsed/urevbsCAwMd7zds2KATJ07oqaeecro+rXXr1qpUqZK+/fZblz7H8ePH5efnpzJlyrg0faYra8ncbxo1aqRz585p165dklxbp5lHjRYsWJDjd6a7fX29753M5f788886cuSIW5/bE5YuXaozZ86oa9euTp/H19dX99xzj9tHzW8F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wjRjxgyXwlZO+vbtq48++khdu3bVM888o+LFi2vq1KmOCwNv5H82Dz74oOOJn/fff78WL1580w/CGzZsmBYvXqxGjRrpqaee0uXLl/Xhhx+qSpUq2rZtm2O6mJgYvfHGGxo0aJD279+vdu3aKTg4WPv27dO8efPUp08fvfDCCzdUw7hx49SwYUNVq1ZNjz/+uMqWLavjx49r3bp1OnToUJbnq9yIRx55RLNmzdITTzyhFStWqEGDBkpPT9euXbs0a9YsLVmyRLVq1brp5biiTZs2Gj58uHr27Kn69evrl19+0dSpUx1HpzK5u11GRkZq9OjR2r9/vypUqKCZM2dqy5Yt+vTTT5UvXz5JOe9TW7duVf/+/fXQQw+pQoUKunz5sqZMmSJfX1916NBB0t+n+F599VWNGDFCjRo1Uvv27WW327V+/XpFRkZq5MiRbvVDixYtVKpUKfXu3VsvvviifH199fnnnys8PNwpWGfHE+vTlf7KSb58+TR69Gj17NlTsbGx6tq1q+P269KlS+u5555zqy8kqV69epo7d67atm3rOPKa3RPS69evr0KFCql79+56+umnZbPZNGXKlCxhcvny5dddp8OHD9eqVavUunVrRUdH68SJE/r4449VsmRJNWzYUJLn952UlBSVLFlSHTt21J133qkCBQrohx9+0Pr16/Xee+85pqtZs6ZmzpypgQMHqnbt2ipQoIDatm1709/XISEhGj9+vB555BHVqFFDXbp0cWxz3377rRo0aKCPPvrI5c9zS9z6G6X+OcaNG2ckmTp16mQ7PiUlxQwaNMiUK1fO+Pv7myJFipj69eubd99913F7Y+bt11fennqlBQsWmMqVKxs/P78st41u3rzZtG/f3hQuXNjY7XYTHR1tOnXqZJYtW+aYxpVbOY0xZu/evaZZs2bGbrebYsWKmVdeecUsXbo029tcq1SpkqXO7t27Z7lV8PfffzetW7c2gYGBJjw83Dz//PPm66+/NpLMTz/9lO3nvbru9evXZxn37rvvGkmmTZs25tKlSznefp3d7Y3R0dGme/fuTsNWrlxpatasafz9/U3ZsmXNJ598kuOtsV9//bVp2LChCQoKMkFBQaZSpUqmX79+Zvfu3Y5pcuqja9m7d6959NFHTUREhMmXL58pUaKEadOmjZkzZ45jmpxuO3Z1fVy8eNGMHj3aVKlSxdjtdlOoUCFTs2ZNM2zYMJOUlOSYLqe+y8m1Pm922/eFCxfM888/b4oXL24CAwNNgwYNzLp16zyyXW7YsMHUq1fPBAQEmOjoaPPRRx9lqSm7fer33383vXr1MjExMSYgIMCEhYWZJk2amB9++CHL/J9//rm5++67HX0YGxtrli5d6hgfHR1tWrdunW0/Xf35Nm7caO655x7j7+9vSpUqZcaMGePyPuvq+syOq/2Vuc3ldAvzzJkzHX0RFhZmunXrZg4dOnTNZV+v3ZkzZxofHx9Tu3Ztk5ycnG1//Pjjj6Zu3bomMDDQREZGmpdeesksWbLEabtwZZ0uW7bMPPDAAyYyMtL4+/ubyMhI07Vr1yyPzbjZfefK7520tDTz4osvmjvvvNMEBweboKAgc+edd5qPP/7YaZ6zZ8+ahx9+2BQsWNBxq3omV/eL7G6/vnIdxMfHm9DQUBMQEGBiYmJMjx49zIYNG7JM6202Y3LhCkzgBo0dO1bPPfecDh06pBIlSni7HNwm7r33Xv3555/avn27t0uxBPoLVsI1MvCaq3/I8cKFC5owYYLKly9PiAEAuIRrZOA17du3V6lSpXTXXXcpKSlJX331lXbt2qWpU6d6uzQAgEUQZOA18fHxmjhxoqZOnar09HRVrlxZM2bMUOfOnb1dGgDAIrhGBgAAWBbXyAAAAMsiyAAAAMu67a+RycjI0JEjRxQcHOz1R68DAADXGGOUkpKiyMjILL8of6XbPsgcOXLE4z+QBgAAbo2DBw9e84dZb/sgExwcLOnvjggJCfFyNQAAwBXJycmKiopy/B3PyW0fZDJPJ4WEhBBkAACwmOtdFsLFvgAAwLIIMgAAwLIIMgAAwLIIMgAAwLIIMgAAwLIIMgAAwLIIMgAAwLIIMgAAwLIIMgAAwLIIMgAAwLK8GmTGjx+v6tWrO34+oF69elq0aJFj/L333iubzeb0euKJJ7xYMQAAyEu8+ltLJUuW1KhRo1S+fHkZY/TFF1/ogQce0ObNm1WlShVJ0uOPP67hw4c75smfP7+3ygUAAHmMV4NM27Ztnd6/+eabGj9+vH766SdHkMmfP78iIiK8UR4AAMjj8sw1Munp6ZoxY4ZSU1NVr149x/CpU6eqSJEiqlq1qgYNGqRz5855sUoAAJCXePWIjCT98ssvqlevni5cuKACBQpo3rx5qly5siTp4YcfVnR0tCIjI7Vt2za9/PLL2r17t+bOnZtje2lpaUpLS3O8T05OzvXPAAAAvMNmjDHeLODixYs6cOCAkpKSNGfOHE2cOFErV650hJkrLV++XHFxcdqzZ49iYmKybW/o0KEaNmxYluFJSUkKCQnxeP249Ww2b1dgLd7dwwHgxiQnJys0NPS6f7+9HmSu1qxZM8XExGjChAlZxqWmpqpAgQJavHix4uPjs50/uyMyUVFRBJnbCEHGPXlrDwcA17gaZLx+aulqGRkZTkHkSlu2bJEkFS9ePMf57Xa77HZ7bpQGAADyGK8GmUGDBqlVq1YqVaqUUlJSNG3aNCUkJGjJkiXau3evpk2bpvvuu0+FCxfWtm3b9Nxzz6lx48aqXr26N8sGAAB5hFeDzIkTJ/Too4/q6NGjCg0NVfXq1bVkyRI1b95cBw8e1A8//KCxY8cqNTVVUVFR6tChg1577TVvlgwAAPKQPHeNjKe5eo4N1sE1Mu65vfdwALcrV/9+55nnyAAAALiLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACyLIAMAACzLz9sFAACQ56zc4O0KrCO2llcXzxEZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWV4NMuPHj1f16tUVEhKikJAQ1atXT4sWLXKMv3Dhgvr166fChQurQIEC6tChg44fP+7FigEAQF7i1SBTsmRJjRo1Shs3btSGDRvUtGlTPfDAA/r1118lSc8995z++9//avbs2Vq5cqWOHDmi9u3be7NkAACQh9iMMcbbRVwpLCxM77zzjjp27Kjw8HBNmzZNHTt2lCTt2rVLd9xxh9atW6e6deu61F5ycrJCQ0OVlJSkkJCQ3Cwdt4jN5u0KrCVv7eGARfAcGdfl0nNkXP37nWeukUlPT9eMGTOUmpqqevXqaePGjbp06ZKaNWvmmKZSpUoqVaqU1q1bl2M7aWlpSk5OdnoBAIDbk9eDzC+//KICBQrIbrfriSee0Lx581S5cmUdO3ZM/v7+KliwoNP0xYoV07Fjx3Jsb+TIkQoNDXW8oqKicvkTAAAAb/F6kKlYsaK2bNmin3/+WU8++aS6d++uHTt23HB7gwYNUlJSkuN18OBBD1YLAADyEq//1pK/v7/KlSsnSapZs6bWr1+vDz74QJ07d9bFixd15swZp6Myx48fV0RERI7t2e122e323C4bAADkAV4/InO1jIwMpaWlqWbNmsqXL5+WLVvmGLd7924dOHBA9erV82KFAAAgr/DqEZlBgwapVatWKlWqlFJSUjRt2jQlJCRoyZIlCg0NVe/evTVw4ECFhYUpJCREAwYMUL169Vy+YwkAANzevBpkTpw4oUcffVRHjx5VaGioqlevriVLlqh58+aSpPfff18+Pj7q0KGD0tLSFB8fr48//tibJQMAgDwkzz1HxtN4jszth+fIuOf23sOBXMJzZFzHc2QAAABuDEEGAABYFkEGAABYltefI2NpXKzhHi7WAAB4GEdkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZfFkXwDI03iCuOt4evg/EUdkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZRFkAACAZXk1yIwcOVK1a9dWcHCwihYtqnbt2mn37t1O09x7772y2WxOryeeeMJLFQMAgLzEq0Fm5cqV6tevn3766SctXbpUly5dUosWLZSamuo03eOPP66jR486Xm+//baXKgYAAHmJnzcXvnjxYqf3kydPVtGiRbVx40Y1btzYMTx//vyKiIi41eUBAIA8Lk9dI5OUlCRJCgsLcxo+depUFSlSRFWrVtWgQYN07ty5HNtIS0tTcnKy0wsAANyevHpE5koZGRl69tln1aBBA1WtWtUx/OGHH1Z0dLQiIyO1bds2vfzyy9q9e7fmzp2bbTsjR47UsGHDblXZwD+GbZjN2yVYhhlivF0C8I9hM8bkiT3uySef1KJFi7RmzRqVLFkyx+mWL1+uuLg47dmzRzExMVnGp6WlKS0tzfE+OTlZUVFRSkpKUkhIiGeLtvHF7hYPbWp0u3s8tYcTZFzn2SBDv7vOg/2+coPn2rrdxdbKlWaTk5MVGhp63b/feeKITP/+/bVw4UKtWrXqmiFGku655x5JyjHI2O122e32XKkTAADkLV4NMsYYDRgwQPPmzVNCQoLKlClz3Xm2bNkiSSpevHguVwcAAPI6rwaZfv36adq0aVqwYIGCg4N17NgxSVJoaKgCAwO1d+9eTZs2Tffdd58KFy6sbdu26bnnnlPjxo1VvXp1b5YOAADyAK8GmfHjx0v6+6F3V5o0aZJ69Oghf39//fDDDxo7dqxSU1MVFRWlDh066LXXXvNCtQAAIK/x+qmla4mKitLKlStvUTUAAMBq8tRzZAAAANxBkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJZFkAEAAJblVpC5dOmS/Pz8tH379tyqBwAAwGVuBZl8+fKpVKlSSk9Pz616AAAAXOb2qaVXX31Vr7zyik6fPp0b9QAAALjMz90ZPvroI+3Zs0eRkZGKjo5WUFCQ0/hNmzZ5rDgAAIBrcTvItGvXLhfKAAAAcJ/bQWbIkCG5UQcAAIDbbuj26zNnzmjixIkaNGiQ41qZTZs26fDhwx4tDgAA4FrcPiKzbds2NWvWTKGhodq/f78ef/xxhYWFae7cuTpw4IC+/PLL3KgTAAAgC7ePyAwcOFA9evRQYmKiAgICHMPvu+8+rVq1yqPFAQAAXIvbQWb9+vXq27dvluElSpTQsWPHPFIUAACAK9wOMna7XcnJyVmG//bbbwoPD/dIUQAAAK5wO8jcf//9Gj58uC5duiRJstlsOnDggF5++WV16NDB4wUCAADkxO0g89577+ns2bMqWrSozp8/r9jYWJUrV07BwcF68803c6NGAACAbLl911JoaKiWLl2qNWvWaNu2bTp79qxq1KihZs2a5UZ9AAAAOXI7yGRq2LChGjZs6MlaAAAA3OJSkPnPf/7jcoNPP/30DRcDAADgDpeCzPvvv+/0/uTJkzp37pwKFiwo6e8n/ebPn19FixYlyAAAgFvGpYt99+3b53i9+eabuuuuu7Rz506dPn1ap0+f1s6dO1WjRg2NGDEit+sFAABwcPuupddff10ffvihKlas6BhWsWJFvf/++3rttdc8WhwAAMC1uB1kjh49qsuXL2cZnp6eruPHj3ukKAAAAFe4HWTi4uLUt29fbdq0yTFs48aNevLJJ7kFGwAA3FJuB5nPP/9cERERqlWrlux2u+x2u+rUqaNixYpp4sSJuVEjAABAttx+jkx4eLi+++47/fbbb9q1a5ckqVKlSqpQoYLHiwMAALiWG34gXoUKFQgvAADAq9wOMunp6Zo8ebKWLVumEydOKCMjw2n88uXLPVYcAADAtbgdZJ555hlNnjxZrVu3VtWqVWWz2XKjLgAAgOtyO8jMmDFDs2bN0n333XfTCx85cqTmzp2rXbt2KTAwUPXr19fo0aOdnlFz4cIFPf/885oxY4bS0tIUHx+vjz/+WMWKFbvp5QMAAGtz+64lf39/lStXziMLX7lypfr166effvpJS5cu1aVLl9SiRQulpqY6pnnuuef03//+V7Nnz9bKlSt15MgRtW/f3iPLBwAA1mYzxhh3Znjvvff0+++/66OPPvL4aaWTJ0+qaNGiWrlypRo3bqykpCSFh4dr2rRp6tixoyRp165duuOOO7Ru3TrVrVv3um0mJycrNDRUSUlJCgkJ8Wi94rSae9zb1HJEt7vHQ90u2zA63lVmiIc6XZJEv7vOg/2+coPn2rrdxdbKlWZd/fvt9qmlNWvWaMWKFVq0aJGqVKmifPnyOY2fO3eu+9X+/5KSkiRJYWFhkv5+0N6lS5ecHrRXqVIllSpVyuUgAwAAbl9uB5mCBQvqwQcf9HghGRkZevbZZ9WgQQNVrVpVknTs2DH5+/s7fmU7U7FixXTs2LFs20lLS1NaWprjfXJyssdrBQAAeYPbQWbSpEm5UYf69eun7du3a82aNTfVzsiRIzVs2DAPVQUAAPIyty/2zQ39+/fXwoULtWLFCpUsWdIxPCIiQhcvXtSZM2ecpj9+/LgiIiKybWvQoEFKSkpyvA4ePJibpQMAAC9y6YhMjRo1tGzZMhUqVEh33333NS/yvfLHJK/HGKMBAwZo3rx5SkhIUJkyZZzG16xZU/ny5dOyZcvUoUMHSdLu3bt14MAB1atXL9s2M3//CQAA3P5cCjIPPPCAIxy0a9fOYwvv16+fpk2bpgULFig4ONhx3UtoaKgCAwMVGhqq3r17a+DAgQoLC1NISIgGDBigevXqcaEvAABw/fbry5cvy8/v2rlnx44dqly5susLz+HIzqRJk9SjRw9J/++BeNOnT3d6IF5Op5auxu3XeQi3X3sFt1/fetx+7S3cfu0VVrn9ulu3bpo5c2aO43fs2KGmTZvmeDdRdlzJUAEBARo3bpzGjRvncrsAAOCfweWLfdetW6cnnngi23E7d+5U06ZNVb9+fY8VBgAAcD0uH5FZsmSJGjdurLCwML311luO4bt27VLTpk1Vt25dzZ49O1eKBAAAyI7LQeaOO+7Qd999p7i4OIWFhemFF17Qrl271KRJE9WuXVtz5syRr69vbtYKAADgxK0H4tWuXVvz589XmzZtdPbsWX322WeqWbOm5syZc90LgQEAADzN7fTRtGlTTZs2TQ899JBatGihefPmZfm9JQAAgFvB5SBTqFChLLdLr169WsWKFXMadvr0ac9UBgAAcB0uB5mxY8fmYhkAAADucznIdO/ePTfrAAAAcFue+NFIAACAG0GQAQAAlkWQAQAAlkWQAQAAlkWQAQAAluXSXUsDBw50ucExY8bccDEAAADucCnIbN682aXGrn5gHgAAQG5yKcisWLEit+sAAABwG9fIAAAAy3L7RyNTU1M1atQoLVu2TCdOnFBGRobT+N9//91jxQEAAFyL20Hmscce08qVK/XII4+oePHiXBcDAAC8xu0gs2jRIn377bdq0KBBbtQDAADgMrevkSlUqJDCwsJyoxYAAAC3uB1kRowYocGDB+vcuXO5UQ8AAIDLXDq1dPfddztdC7Nnzx4VK1ZMpUuXVr58+Zym3bRpk2crBAAAyIFLQaZdu3a5XAYAAID7XAoyQ4YMye06AAAA3MYD8QAAgGW5fft1enq63n//fc2aNUsHDhzQxYsXncafPn3aY8UBAABci9tHZIYNG6YxY8aoc+fOSkpK0sCBA9W+fXv5+Pho6NChuVAiAABA9twOMlOnTtVnn32m559/Xn5+furatasmTpyowYMH66effsqNGgEAALLldpA5duyYqlWrJkkqUKCAkpKSJElt2rTRt99+69nqAAAArsHtIFOyZEkdPXpUkhQTE6Pvv/9ekrR+/XrZ7XbPVgcAAHANbgeZBx98UMuWLZMkDRgwQK+//rrKly+vRx99VL169fJ4gQAAADlx+66lUaNGOf7duXNnRUdHa+3atSpfvrzatm3r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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# BEGIN SOLUTION\n", - "colors = [\"red\", \"blue\", \"green\", \"yellow\", \"pink\"]\n", - "plt.bar(sec_school.keys(), sec_school.values(), color=colors)\n", - "plt.xlabel(\"Klassenstufe\")\n", - "plt.ylabel(\"Anzahl Kinder\")\n", - "plt.title(\"Verteilung Kinder einer Hauptschule pro Klassenstufe\")\n", - "plt.show()\n", - "# END SOLUTION" - ] - }, - { - "cell_type": "markdown", - "id": "75b88cfc-ac01-4af4-9b90-ca3a3f522115", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-42bf44a09515d0fd", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Horizontales Bar Chart\n", - "\n", - "Analog zum Barchart erzeugt `plt.barh` einen Horizontales Barchart.\n", - "\n", - "Beispiel:" - ] - }, - { - "cell_type": "code", - "execution_count": 87, - "id": "43ec4deb-261a-43c7-ac88-8f43338420b8", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-54166820b406e29e", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAGwCAYAAACXRQDXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA020lEQVR4nO3de1hVdd7//9cG5CTsLaImeADKU5aa4pjI1zESJdOUzMMwplmZzoSN5tVkjKnZVNrBUru7GzuM2sx4yvEwo2PJrYCmeBbSVDRTYBLFGxMEEwTW7w9/7nv2QA5st2sjPh/Xta/LvdZnf9Z77c80vK7P+qy1LYZhGAIAAIApPNxdAAAAwO2E8AUAAGAiwhcAAICJCF8AAAAmInwBAACYiPAFAABgIsIXAACAibzcXQAcVVZW6vTp0woMDJTFYnF3OQAAoAYMw9DFixcVGhoqD4/rz20RvuqY06dPq1WrVu4uAwAAOCE3N1ctW7a8bhvCVx0TGBgo6ergWa1WN1cDAABqoqioSK1atbL/Hb8ewlcdc+1So9VqJXwBAHCLqcmSIRbcAwAAmIjwBQAAYCLCFwAAgIkIXwAAACYifAEAAJiI8AUAAGAiwhcAAICJCF8AAAAmInwBAACYiPAFAABgIsIXAACAiQhfAAAAJiJ8AQAAmIjwBQAAYCIvdxeA6s222eTr7iIAAKhnZhqGu0tg5gsAAMBMhC8AAAATEb4AAABMRPgCAAAwEeELAADARIQvAAAAExG+AAAATET4AgAAMBHhCwAAwESELwAAABMRvgAAAExE+AIAADAR4QsAAMBEhC8AAAATEb4AAABMRPgCAAAwEeELAADARIQvAAAAExG+AAAATET4AgAAMBHhCwAAwESELwAAABMRvgAAAExE+AIAADAR4QsAAMBEhC8AAAATEb4AAABMRPgCAAAwEeELAADARIQvAAAAE90W4Ss1NVUWi0UXLlxwdykAAOA2V2fC15w5c2SxWDR58uRafe7UqVOyWCzKyMiwb7t48aJiYmLUsWNH/fOf/3RtoQAAADegToSvPXv2aOHChercufMN93Xu3DnFxMSopKRE27ZtU8uWLV1QIQAAgGu4PXwVFxdr1KhR+vjjjxUUFHRDfeXm5qp3796y2WzasmWLgoODq21XUFCghIQEtWjRQv7+/urUqZOWLVvm0GbVqlXq1KmT/Pz8FBwcrNjYWJWUlEi6ehmzR48eatiwoRo1aqTo6GhlZ2fbP7tu3Tp169ZNvr6+uvPOOzVr1iyVl5dXW0tpaamKioocXgAAoP5ye/hKTEzUwIEDFRsbe0P9ZGVlKTo6Wh07dtQ//vEPBQQE/GTby5cvKzIyUhs2bNChQ4c0fvx4jR49Wrt375Yk5eXlKSEhQU899ZSOHDmi1NRUDR06VIZhqLy8XPHx8erTp4++/vprpaena/z48bJYLJKkbdu2acyYMZo0aZIOHz6shQsXavHixXr99derrWX27Nmy2Wz2V6tWrW7oewAAAHWbxTAMw10HX758uV5//XXt2bNHvr6+euCBB3Tfffdp3rx5Ne7j1KlTioiIkLe3t6Kjo5WcnCxPT0+HNqmpqYqJidEPP/ygRo0aVdvPoEGD1KFDB73zzjvav3+/IiMjderUKYWFhTm0O3/+vIKDg5Wamqo+ffpU6Sc2NlZ9+/ZVUlKSfduf//xnvfjiizp9+nSV9qWlpSotLbW/LyoqUqtWrfSSJN8afwsAAKAmZt6k2FNUVCSbzabCwkJZrdbrtvW6KRXUQG5uriZNmqTk5GT5+t54zBg8eLDWrl2r1atXa/jw4ddtW1FRoTfeeEMrV67U999/r7KyMpWWlsrf31+S1KVLF/Xt21edOnVSXFyc+vfvr2HDhikoKEiNGzfW2LFjFRcXp379+ik2NlYjRoxQSEiIJCkzM1Pbt293mOmqqKjQ5cuXdenSJfsxrvHx8ZGPj88Nnz8AALg1uO2y4759+5Sfn69u3brJy8tLXl5eSktL04IFC+Tl5aWKiopa9Tdt2jTNmDFDv/zlL7Vy5crrtn377bc1f/58TZ06VSkpKcrIyFBcXJzKysokSZ6enkpOTtbGjRvVsWNHvf/++2rfvr1OnjwpSVq0aJHS09PVq1cvrVixQu3atdPOnTslXV3DNmvWLGVkZNhfBw8e1PHjx10SMgEAwK3NbTNfffv21cGDBx22Pfnkk+rQoYOmTp1a5dJhTUyfPl0eHh4aNWqUDMPQyJEjq223fft2DRkyRI8//rgkqbKyUseOHVPHjh3tbSwWi6KjoxUdHa0ZM2YoLCxMa9as0ZQpUyRJXbt2VdeuXZWUlKSoqCgtXbpUPXv2VLdu3ZSVlaU2bdrUun4AAFD/uS18BQYG6t5773XY1rBhQwUHBztsHzNmjFq0aKHZs2fXqN9p06bJ09NTo0aNUmVlpRISEqq0adu2rVatWqUdO3YoKChI7777rs6ePWsPX7t27dLmzZvVv39/NWvWTLt27dK5c+d099136+TJk/roo480ePBghYaGKisrS8ePH9eYMWMkSTNmzNCgQYPUunVrDRs2TB4eHsrMzNShQ4f02muvOft1AQCAesJt4aumcnJy5OFRu6ujL730kjw8PDR69GgZhqHQ0FCH/S+//LK+++47xcXFyd/fX+PHj1d8fLwKCwslSVarVVu3btW8efNUVFSksLAwzZ07VwMGDNDZs2d19OhRLVmyRAUFBQoJCVFiYqImTJggSYqLi9P69ev16quv6s0331SDBg3UoUMHjRs3zjVfCAAAuKW59W5HVHXtbgnudgQAwPXqwt2Obn/OFwAAwO2E8AUAAGAiwhcAAICJCF8AAAAmInwBAACYiPAFAABgIsIXAACAiQhfAAAAJiJ8AQAAmIjwBQAAYCLCFwAAgIkIXwAAACYifAEAAJiI8AUAAGAiwhcAAICJCF8AAAAmInwBAACYiPAFAABgIsIXAACAiQhfAAAAJiJ8AQAAmIjwBQAAYCLCFwAAgIkIXwAAACYifAEAAJiI8AUAAGAiwhcAAICJCF8AAAAm8nJ3AaheUmGhrFaru8sAAAAuxswXAACAiQhfAAAAJiJ8AQAAmIjwBQAAYCLCFwAAgIkIXwAAACYifAEAAJiI8AUAAGAiwhcAAICJCF8AAAAmInwBAACYiPAFAABgIsIXAACAiQhfAAAAJiJ8AQAAmIjwBQAAYCIvdxeA6s222eTr7iIA3JJmGoa7SwBwHcx8AQAAmIjwBQAAYCLCFwAAgIkIXwAAACYifAEAAJiI8AUAAGAiwhcAAICJCF8AAAAmInwBAACYiPAFAABgIsIXAACAiQhfAAAAJiJ8AQAAmIjwBQAAYCLCFwAAgIkIXwAAACYifAEAAJiI8AUAAGAiwhcAAICJCF8AAAAmInwBAACYiPAFAABgIsIXAACAiQhfAAAAJiJ8AQAAmIjwBQAAYCLCFwAAgIkIXwAAACYifAEAAJiI8AUAAGCi2yJ8paamymKx6MKFC+4uBQAA3ObcGr4+/PBDde7cWVarVVarVVFRUdq4cWOt+jh16pQsFosyMjLs2y5evKiYmBh17NhR//znP11cNQAAgPPcGr5atmypOXPmaN++fdq7d68efPBBDRkyRN98843TfZ47d04xMTEqKSnRtm3b1LJlSxdWDAAAcGPcGr4eeeQRPfzww2rbtq3atWun119/XQEBAdq5c6dT/eXm5qp3796y2WzasmWLgoODq21XUFCghIQEtWjRQv7+/urUqZOWLVvm0GbVqlXq1KmT/Pz8FBwcrNjYWJWUlEi6ehmzR48eatiwoRo1aqTo6GhlZ2fbP7tu3Tp169ZNvr6+uvPOOzVr1iyVl5c7dU4AAKB+8XJ3AddUVFTo888/V0lJiaKiomr9+aysLP32t79V9+7dtWzZMvn4+Pxk28uXLysyMlJTp06V1WrVhg0bNHr0aN11113q0aOH8vLylJCQoLfeekuPPvqoLl68qG3btskwDJWXlys+Pl7PPPOMli1bprKyMu3evVsWi0WStG3bNo0ZM0YLFixQ7969deLECY0fP16SNHPmzCq1lJaWqrS01P6+qKio1ucOAABuHRbDMAxnPnj8+HGlpKQoPz9flZWVDvtmzJhR434OHjyoqKgoXb58WQEBAVq6dKkefvjhGn/+1KlTioiIkLe3t6Kjo5WcnCxPT0+HNqmpqYqJidEPP/ygRo0aVdvPoEGD1KFDB73zzjvav3+/IiMjderUKYWFhTm0O3/+vIKDg5Wamqo+ffpU6Sc2NlZ9+/ZVUlKSfduf//xnvfjiizp9+nSV9q+88opmzZpVZftLknxrcP4A8O9mOvd/6wBuQFFRkWw2mwoLC2W1Wq/b1qnw9fHHH+vXv/61mjRpoubNm9tnfSTJYrFo//79Ne6rrKxMOTk5Kiws1KpVq/TJJ58oLS1NHTt2rNHnr4WvYcOGae3atVq6dKmGDx/u0Obfw1dFRYXeeOMNrVy5Ut9//73KyspUWlqqRx99VCtXrlRFRYXi4uK0e/duxcXFqX///ho2bJiCgoIkSU8++aSWLVumfv36KTY2ViNGjFBISIgkqWnTpiouLnYIgBUVFbp8+bJKSkrk7+/vUFt1M1+tWrUifAFwGuELMN9ND19hYWF69tlnNXXqVKeL/CmxsbG66667tHDhwhq1vxa+Dhw4oL///e969dVX9Ze//EUjRoywt/n38DVnzhy98847mjdvnjp16qSGDRtq8uTJ8vLy0tq1ayVJhmFox44d2rRpk9asWaMzZ85o165dioiIkCQdOHBAX3zxhf7+97/r4MGDSk5OVs+ePeXn56dZs2Zp6NChVWq988475eFx/WV21waP8AXAWYQvwHy1CV9Orfn64YcfqswuuUplZaXDTFBtTJ8+XR4eHho1apQMw9DIkSOrbbd9+3YNGTJEjz/+uP2Yx44dc5hts1gsio6OVnR0tGbMmKGwsDCtWbNGU6ZMkSR17dpVXbt2VVJSkqKiorR06VL17NlT3bp1U1ZWltq0aePUOQAAgPrNqfA1fPhwbdq0Sb/61a9u6OBJSUkaMGCAWrdurYsXL2rp0qVKTU3Vl19+aW8zZswYtWjRQrNnz65Rn9OmTZOnp6dGjRqlyspKJSQkVGnTtm1brVq1Sjt27FBQUJDeffddnT171h6+du3apc2bN6t///5q1qyZdu3apXPnzunuu+/WyZMn9dFHH2nw4MEKDQ1VVlaWjh8/rjFjxki6ut5t0KBBat26tYYNGyYPDw9lZmbq0KFDeu21127o+wIAALc+p8JXmzZtNH36dO3cuVOdOnVSgwYNHPb/5je/qVE/+fn5GjNmjPLy8mSz2dS5c2d9+eWX6tevn71NTk7Of7xU9+9eeukleXh4aPTo0TIMQ6GhoQ77X375ZX333XeKi4uTv7+/xo8fr/j4eBUWFkqSrFartm7dqnnz5qmoqEhhYWGaO3euBgwYoLNnz+ro0aNasmSJCgoKFBISosTERE2YMEGSFBcXp/Xr1+vVV1/Vm2++qQYNGqhDhw4aN25crc4BAADUT06t+bq27qnaDi0WfffddzdU1O2MNV8AbhRrvgDz3fQ1XydPnnSqMAAAgNvdDT3hvqysTFlZWTy9HQAAoIacCl+XLl3S008/LX9/f91zzz3KycmRJD333HOaM2eOSwsEAACoT5wKX0lJScrMzFRqaqp8ff9vZVJsbKxWrFjhsuIAAADqG6fWfK1du1YrVqxQz549HZ5uf8899+jEiRMuKw4AAKC+cWrm69y5c2rWrFmV7SUlJQ5hDAAAAI6cCl/du3fXhg0b7O+vBa5PPvlEUVFRrqkMAACgHnLqsuMbb7yhAQMG6PDhwyovL9f8+fN1+PBh7dixQ2lpaa6uEQAAoN5waubr//2//6eMjAyVl5erU6dO2rRpk5o1a6b09HRFRka6ukYAAIB6o8YzX1OmTNHvf/97NWzYUFu3blWvXr308ccf38zaAAAA6p0az3y9//77Ki4uliTFxMTo/PnzN60oAACA+qrGM1/h4eFasGCB+vfvL8MwlJ6erqCgoGrb/vznP3dZgQAAAPVJjX9Ye+3atfrVr36l/Px8WSwW/dTHLBaLKioqXFrk7YQf1gZwo/hhbcB8N+WHtePj4xUfH6/i4mJZrVZlZWVV+6wvAAAA/LRaP2oiICBAKSkpioiIkJeXU0+qAAAAuG05lZ4iIiJ0+vTpn9zfunVrpwsCAACoz5wKX+Hh4df9GSHWfAEAAFTPqfB14MABh/dXrlzRgQMH9O677+r11193SWEAAAD1kVPhq0uXLlW2de/eXaGhoXr77bc1dOjQGy4MAACgPnLq54V+Svv27bVnzx5XdgkAAFCvODXzVVRU5PDeMAzl5eXplVdeUdu2bV1SGAAAQH3kVPhq1KhRlQX3hmGoVatWWr58uUsKAwAAqI+cCl8pKSkO7z08PNS0aVO1adOGZ38BAABch1NJyWKxqFevXlWCVnl5ubZu3cpvOwIAAPwEpxbcx8TE6Pz581W2FxYWKiYm5oaLAgAAqK+cCl+GYVT7kNWCggI1bNjwhosCAACor2p12fHa87ssFovGjh0rHx8f+76Kigp9/fXX6tWrl2srBAAAqEdqFb5sNpukqzNfgYGB8vPzs+/z9vZWz5499cwzz7i2QgAAgHqkVuFr0aJFkq7+tuMLL7zAJcabKKmwUFar1d1lAAAAF3NqzdeLL77osOYrOztb8+bN06ZNm1xWGAAAQH3kVPgaMmSIPvvsM0nShQsX1KNHD82dO1dDhgzRhx9+6NICAQAA6hOnwtf+/fvVu3dvSdKqVavUvHlzZWdn67PPPtOCBQtcWiAAAEB94lT4unTpkgIDAyVJmzZt0tChQ+Xh4aGePXsqOzvbpQUCAADUJ06FrzZt2mjt2rXKzc3Vl19+qf79+0uS8vPzWSQOAABwHU6FrxkzZuiFF15QeHi47r//fkVFRUm6OgvWtWtXlxYIAABQn1gMwzCc+eCZM2eUl5enLl26yMPjaobbvXu3rFarOnTo4NIibydFRUWy2Wwq5FETAADcMmrz99upH9aWpObNm6t58+YO23r06OFsdwAAALcFp8JXSUmJ5syZo82bNys/P1+VlZUO+7/77juXFAcAAFDfOBW+xo0bp7S0NI0ePVohISHV/sg2AAAAqnIqfG3cuFEbNmxQdHS0q+sBAACo15y62zEoKEiNGzd2dS0AAAD1nlPh6/e//71mzJihS5cuuboeAACAes2py45z587ViRMndMcddyg8PFwNGjRw2L9//36XFAcAAFDfOBW+4uPjXVwGAADA7cHph6zi5uAhqwAA3Hpq8/fbqTVfknThwgV98sknSkpK0vnz5yVdvdz4/fffO9slAABAvefUZcevv/5asbGxstlsOnXqlJ555hk1btxYq1evVk5Ojj777DNX13nbmW2zydfdRQDATTSTCy+4TTk18zVlyhSNHTtWx48fl6/v/0WEhx9+WFu3bnVZcQAAAPWNU+Frz549mjBhQpXtLVq00JkzZ264KAAAgPrKqfDl4+OjoqKiKtuPHTumpk2b3nBRAAAA9ZVT4Wvw4MF69dVXdeXKFUmSxWJRTk6Opk6dqscee8ylBQIAANQnToWvuXPnqri4WM2aNdOPP/6oPn36qE2bNgoMDNTrr7/u6hoBAADqDafudrTZbEpOTtb27duVmZmp4uJidevWTbGxsa6uDwAAoF5xKnxdEx0drejoaElXn/sFAACA63PqsuObb76pFStW2N+PGDFCwcHBatGihTIzM11WHAAAQH3jVPj6wx/+oFatWkmSkpOTlZycrI0bN2rAgAH67W9/69ICAQAA6hOnLjueOXPGHr7Wr1+vESNGqH///goPD9f999/v0gIBAADqE6dmvoKCgpSbmytJ+uKLL+wL7Q3DUEVFheuqAwAAqGecmvkaOnSofvnLX6pt27YqKCjQgAEDJEkHDhxQmzZtXFogAABAfeJU+HrvvfcUHh6u3NxcvfXWWwoICJAk5eXl6dlnn3VpgQAAAPWJxTD4Wfm6pKioSDabTS9J8v2PrQHg1jWTPz+oR679/S4sLJTVar1uW6fWfC1ZskQbNmywv3/xxRfVqFEj9erVS9nZ2c50CQAAcFtwKny98cYb8vPzkySlp6frgw8+0FtvvaUmTZro+eefd2mBAAAA9YlTa75yc3PtC+vXrl2rxx57TOPHj1d0dLQeeOABV9YHAABQrzg18xUQEKCCggJJ0qZNm9SvXz9Jkq+vr3788UfXVQcAAFDPODXz1a9fP40bN05du3bVsWPH9PDDD0uSvvnmG4WHh7uyPgAAgHrFqZmvDz74QFFRUTp37pz++te/Kjg4WJK0b98+JSQkuLRAAACA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4VG7q6MvvfSSPDw8NHr0aBmGUWUt2ssvv6zvvvtOcXFx8vf31/jx4xUfH2+/29JqtWrr1q2aN2+eioqKFBYWprlz52rAgAE6e/asjh49qiVLlqigoEAhISFKTEzUhAkTJElxcXFav369Xn31Vb355ptq0KCBOnTooHHjxjnxDQEAgPqm1nc74ua6drcEdzsCqO+42xH1SW3udnRqwT0AAACcQ/gCAAAwEeELAADARIQvAAAAExG+AAAATET4AgAAMBHhCwAAwESELwAAABMRvgAAAExE+AIAADAR4QsAAMBEhC8AAAATEb4AAABMRPgCAAAwEeELAADARIQvAAAAExG+AAAATET4AgAAMBHhCwAAwESELwAAABMRvgAAAExE+AIAADAR4QsAAMBEhC8AAAATEb4AAABMRPgCAAAwEeELAADARIQvAAAAE3m5uwBUL6mwUFar1d1lAAAAF2PmCwAAwESELwAAABMRvgAAAExE+AIAADAR4QsAAMBEhC8AAAATEb4AAABMRPgCAAAwEeELAADARIQvAAAAExG+AAAATET4AgAAMBHhCwAAwESELwAAABMRvgAAAExE+AIAADCRl7sLQPVm22zydXcRAAC42EzDcHcJbsfMFwAAgIkIXwAAACYifAEAAJiI8AUAAGAiwhcAAICJCF8AAAAmInwBAACYiPAFAABgIsIXAACAiQhfAAAAJiJ8AQAAmIjwBQAAYCLCFwAAgIkIXwAAACYifAEAAJiI8AUAAGAiwhcAAICJCF8AAAAmInwBAACYiPAFAABgIsIXAACAiQhfAAAAJiJ8AQAAmIjwBQAAYCLCFwAAgIkIXwAAACYifAEAAJiI8AUAAGAiwhcAAICJCF8AAAAmui3C16lTp2SxWJSRkeHuUgAAwG3OreFr69ateuSRRxQaGiqLxaK1a9c61c+/f/bKlStKSEhQixYtdOjQIdcUCwAA4AJuDV8lJSXq0qWLPvjgA5f1eenSJQ0ePFh79uzRV199pXvvvddlfQMAANwot4avAQMG6LXXXtOjjz7qkv4uXLigfv366fTp0/rqq68UERFRbbuKigo9/fTTioiIkJ+fn9q3b6/58+c7tElNTVWPHj3UsGFDNWrUSNHR0crOzpYkZWZmKiYmRoGBgbJarYqMjNTevXvtn/3qq6/Uu3dv+fn5qVWrVvrNb36jkpISl5wjAAC4tXm5uwBXOXPmjPr06aOAgAClpaWpUaNGP9m2srJSLVu21Oeff67g4GDt2LFD48ePV0hIiEaMGKHy8nLFx8frmWee0bJly1RWVqbdu3fLYrFIkkaNGqWuXbvqww8/lKenpzIyMtSgQQNJ0okTJ/TQQw/ptdde0x//+EedO3dOEydO1MSJE7Vo0aIqtZSWlqq0tNT+vqioyLVfDAAAqFMshmEY7i5Curpua82aNYqPj3fqs97e3rrzzju1b98++fv7O+w/deqUIiIidODAAd13333V9jFx4kSdOXNGq1at0vnz5xUcHKzU1FT16dOnSlur1ar3339fTzzxRJV948aNk6enpxYuXGjf9tVXX6lPnz4qKSmRr6+vQ/tXXnlFs2bNqtLPS5J8q2wFAODWNrNuxA6XKyoqks1mU2FhoaxW63Xb1pu7HQcNGqRjx445hJ7r+eCDDxQZGammTZsqICBAH330kXJyciRJjRs31tixYxUXF6dHHnlE8+fPV15env2zU6ZM0bhx4xQbG6s5c+boxIkT9n2ZmZlavHixAgIC7K+4uDhVVlbq5MmTVepISkpSYWGh/ZWbm3uD3wQAAKjL6k34Gj16tP74xz/qhRde0LvvvnvdtsuXL9cLL7ygp59+Wps2bVJGRoaefPJJlZWV2dssWrRI6enp6tWrl1asWKF27dpp586dkq7OVn3zzTcaOHCgtmzZoo4dO2rNmjWSpOLiYk2YMEEZGRn2V2Zmpo4fP6677rqrSi0+Pj6yWq0OLwAAUH/VmzVfkvTEE0/Iw8NDTz75pCorK/XCCy9U22779u3q1auXnn32Wfu2f529uqZr167q2rWrkpKSFBUVpaVLl6pnz56SpHbt2qldu3Z6/vnnlZCQoEWLFunRRx9Vt27ddPjwYbVp0+bmnCQAALiluXXmq7i42D47JEknT55URkaG/fKfdPWy3JgxY2rc5+jRo7VkyRK99NJLevvtt6tt07ZtW+3du1dffvmljh07punTp2vPnj32/SdPnlRSUpLS09OVnZ2tTZs26fjx47r77rv1448/auLEiUpNTVV2dra2b9+uPXv26O6775YkTZ06VTt27NDEiROVkZGh48ePa926dZo4caIT3xAAAKhv3DrztXfvXsXExNjfT5kyRdLVGazFixdLkvLy8hzCWE2MGjVKHh4eGj16tCor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N1d/e0hKStKAAQPUunVrXbx4UUuXLlVqaqq+/PJLxqeOCAwMtK+TvKZhw4YKDg62b2ecbgJ3324JR++//77RunVrw9vb2+jRo4exc+dOd5d020pJSTEkVXk98cQThmFcfdzE9OnTjTvuuMPw8fEx+vbta2RlZbm36NtIdWMjyVi0aJG9zY8//mg8++yzRlBQkOHv7288+uijRl5envuKvs089dRTRlhYmOHt7W00bdrU6Nu3r7Fp0yb7fsanbvrXR00YBuN0M1gMwzDclPsAAABuO6z5AgAAMBHhCwAAwESELwAAABMRvgAAAExE+AIAADAR4QsAAMBEhC8AAAATEb4AAABMRPgCACe98soruu+++67b5oEHHtDkyZNv+nFqIjw8XPPmzbvhfgDcGMIXgFtWenq6PD09NXDgQHeX4rTFixerUaNGDtuOHDmiVq1aafjw4SorK9MLL7zg8MPGAG5thC8At6xPP/1Uzz33nLZu3arTp0+7uxyX2LNnj3r37q2HHnpIK1askLe3twICAhQcHOzu0lRWVubuEoB6gfAF4JZUXFysFStW6Ne//rUGDhyoxYsXO+xPTU2VxWLR5s2b1b17d/n7+6tXr17KysqytwkPD5fFYqnyumbq1Klq166d/P39deedd2r69Om6cuVKlVr+9Kc/KTw8XDabTb/4xS908eJFp85py5YtevDBB/X000/r448/lofH1f+L/vfLjmPHjlV8fLzeeecdhYSEKDg4WImJiQ615efn65FHHpGfn58iIiL0l7/8pcrxLly4oHHjxqlp06ayWq168MEHlZmZad9/7biffPKJIiIi5Ovr69R5AXBE+AJwS1q5cqU6dOig9u3b6/HHH9cf//hHGYZRpd20adM0d+5c7d27V15eXnrqqafs+/bs2aO8vDzl5eXpn//8p3r27KnevXvb9wcGBmrx4sU6fPiw5s+fr48//ljvvfeeQ/8nTpzQ2rVrtX79eq1fv15paWmaM2dOrc9nzZo1GjhwoF5++WW9+eab/7F9SkqKTpw4oZSUFC1ZskSLFy92CKBjx45Vbm6uUlJStGrVKv33f/+38vPzHfoYPny48vPztXHjRu3bt0/dunVT3759df78eXubb7/9Vn/961+1evVqZWRk1Pq8AFTDAIBbUK9evYx58+YZhmEYV65cMZo0aWKkpKTY96ekpBiSjP/5n/+xb9uwYYMhyfjxxx+r9Peb3/zGCAsLM/Lz83/ymG+//bYRGRlpfz9z5kzD39/fKCoqsm/77W9/a9x///3293369DEmTZr0k30uWrTI8PT0NDw9PY3p06dX22bmzJlGly5d7O+feOIJIywszCgvL7dvGz58uDFy5EjDMAwjKyvLkGTs3r3bvv/IkSOGJOO9994zDMMwtm3bZlitVuPy5csOx7rrrruMhQsX2o/boEGD634nAGqPmS8At5ysrCzt3r1bCQkJkiQvLy+NHDlSn376aZW2nTt3tv87JCREkqrMAH300Uf69NNP9be//U1Nmza1b1+xYoWio6PVvHlzBQQE6OWXX1ZOTo7DZ8PDwxUYGOhwjH/v/z/x8/NTv3799PHHH+vIkSM1+sw999wjT0/Pao975MgReXl5KTIy0r6/Q4cODgv7MzMzVVxcrODgYAUEBNhfJ0+e1IkTJ+ztwsLCHL4TADfOy90FAEBtffrppyovL1doaKh9m2EY8vHx0X/913/JZrPZtzdo0MD+72vruSorK+3bUlJS9Nxzz2nZsmUOQS09PV2jRo3SrFmzFBcXJ5vNpuXLl2vu3LkOtfxr/9eO8a/914Snp6fWrl2roUOHKiYmRikpKbr77ruv+5kbPW5xcbFCQkKUmppaZd+/hrSGDRvWuE8ANUP4AnBLKS8v12effaa5c+eqf//+Dvvi4+O1bNky/epXv6pRX99++62GDRum3/3udxo6dKjDvh07digsLEzTpk2zb8vOzr7xE/gJPj4+Wr16tYYNG6aYmBht2bJFHTt2dKqvDh06qLy8XPv27dPPfvYzSVdnCy9cuGBv061bN505c0ZeXl4KDw93wRkAqCkuOwK4paxfv14//PCDnn76ad17770Or8cee6zaS4/V+fHHH/XII4+oa9euGj9+vM6cOWN/SVLbtm2Vk5Oj5cuX68SJE1qwYIHWrFlzM09NPj4++utf/6r7779fMTEx+uabb5zqp3379nrooYc0YcIE7dq1S/v27dO4cePk5+dnbxMbG6uoqCjFx8dr06ZNOnXqlHbs2KFp06Zp7969rjolANUgfAG4pXz66aeKjY11uLR4zWOPPaa9e/fq66+//o/9nD17VkePHtXmzZsVGhqqkJAQ+0uSBg8erOeff14TJ07Ufffdpx07dmj69OkuP59/5+3trVWrVqlXr16KiYnRoUOHnOpn0aJFCg0NVZ8+fTR06FCNHz9ezZo1s++3WCz6xz/+oZ///Od68skn1a5dO/3iF79Qdna27rjjDledDoBqWAyjmnuzAQAAcFMw8wUAAGAiwhcAAICJCF8AAAAmInwBAACYiPAFAABgIsIXAACAiQhfAAAAJiJ8AQAAmIjwBQAAYCLCFwAAgIkIXwAAACb6/wD93sAtsqdeBwAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "school = { \n", - " \"1. Klasse\": 42,\n", - " \"2. Klasse\": 30,\n", - " \"3. Klasse\": 26,\n", - " \"4. Klasse\": 45,\n", - "}\n", - "\n", - "plt.barh(list(school.keys()), list(school.values()), color=\"maroon\") # barh statt bar\n", - "\n", - "plt.xlabel(\"Anzahl Kinder\") \n", - "plt.ylabel(\"Klassenstufen\") \n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "d5275062-b7f5-4193-9b5a-70f4e861c819", - "metadata": { - "jp-MarkdownHeadingCollapsed": true, - "nbgrader": { - "grade": false, - "grade_id": "cell-3adde3f53176bcb0", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Pie Chart <3\n", - "\n", - "Kommen wir als nächstes zu der besten, tollsten und schönsten Darstellung von Daten. Den KUCHENDIAGRAMMEN!\n", - "\n", - "![](https://flowingdata.com/wp-content/uploads/2014/12/Pie-Pyramid-620x311.png)\n", - "\n", - "Kuchendiagramme können mittels `plt.pie` erstellt werden. Nehmen wir dazu wieder das Beispiel aus voherigem Kapitel. Dabei verlangt das Pie Chart nur die Werte (`school.values`) des Datensets:" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "id": "0e4c5699-5710-4c32-b4cc-e275bec35cc8", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-46cde6d166912ad0", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAGbCAYAAAAr/4yjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA8k0lEQVR4nO3dd3hUVcIG8PfOZGbSe0JICAFCbyJRQIpITSLFgiBgoYkgfovu54rlYxddXfuCCrsiqIgVRWysSlFBivQmSAtdekIK6Zlyvj9C7hKSQMpMztx739/z5AlMprxT31vOnKsIIQSIiIgAmGQHICIi78FSICIiFUuBiIhULAUiIlKxFIiISMVSICIiFUuBiIhULAUiIlKxFIiISKXbUnjmmWegKIrsGIZ2yy234JZbblH/f+zYMSiKgvfff19aJnfia8y93n//fSiKgmPHjrn9uhVFwf/8z/+49TqbNGmCsWPHuvU6vYGmSqHsRbN169Zyp+fk5KBLly7w9fXFsmXLJKXTl++//x7PPPOM7BhUS8XFxZg9ezZ69uyJsLAwWK1WxMbGYujQofj000/hdDplRyQvpalSqMzFixcxcOBA/Pbbb/jqq6+QkpIiO5IufP/993j22WfrdB0rVqzAihUr3JTI+0yfPh2FhYWyY1SQnp6OHj16YOrUqQgMDMT06dPx9ttv409/+hPy8/MxevRovPDCC7JjkpfykR2gLnJzc5GcnIydO3fiyy+/RGpqquxImpefn4+AgAC3XJfVanXL9XgrHx8f+PjU/1uoqKgIVqsVJlPly3T33XcfduzYgSVLluDOO+8s97ennnoKW7duxYEDB+p0G6Rfmn3G8/LykJKSgu3bt2PJkiUYNGjQNS+zYMEC9O3bF9HR0bDZbGjbti3eeuutCufbunUrkpOTERkZCT8/PzRt2hTjx48vd55FixYhKSkJQUFBCA4ORocOHfDGG2+UO092djYeffRRxMfHw2azoXnz5nj55ZfhcrnU85RtZ3/ttdcwb948JCYmwmaz4cYbb8SWLVvU87322mtQFAXHjx+vkPepp56C1WpFVlaWetqmTZuQkpKCkJAQ+Pv7o3fv3li/fn25y5VtE9+7dy9Gjx6NsLAw9OzZE2PHjsW//vUvAKXbYst+yrhcLrz++uto164dfH190aBBA0yaNKnc7QMV9ylUpqrzjB07Fk2aNKnx41Rm8eLFaNu2LXx9fdG+fXt89dVXFa7zan744Qf06tULAQEBCAoKwqBBg/D777+XO09l+xTKtl1//fXXaN++PWw2G9q1a1fpZs1Tp05h/PjxaNCggXq+9957r9x5Vq9eDUVRsGjRIkyfPh1xcXHw9/fHxYsXK829YcMGLF++HA8++GCFQihzww034J577qnWbVS136Sy7f9NmjTB4MGDsW7dOnVzbrNmzfDBBx9UuPzvv/+Ovn37ws/PD40aNcLzzz9f7n1RpjrvRZfLhTfeeAMdOnSAr68voqKikJKSUmEzM4BrPi9VvUaqu/+oOu95b6fJNYX8/HykpqZiy5Yt+OKLLzB48OBqXe6tt95Cu3btMHToUPj4+GDp0qWYMmUKXC4XHn74YQDA+fPnMXDgQERFReHJJ59EaGgojh07hi+//FK9npUrV2LUqFHo168fXn75ZQDAvn37sH79ejzyyCMAgIKCAvTu3RunTp3CpEmT0LhxY/z666946qmncObMGbz++uvlsn3yySfIzc3FpEmToCgKXnnlFdx55504cuQILBYLRowYgWnTpuHzzz/H448/Xu6yn3/+OQYOHIiwsDAAwM8//4zU1FQkJSVhxowZMJlMaiGuXbsWXbp0KXf54cOHo0WLFnjhhRcghMD111+P06dPY+XKlfjwww8rPI6TJk3C+++/j3HjxmHq1Kk4evQo5syZgx07dmD9+vWwWCzVej5q41qPEwB89913uPvuu9GhQwe8+OKLyMrKwoQJExAXF1et2/jwww8xZswYJCcn4+WXX0ZBQQHeeust9OzZEzt27Lhmsaxbtw5ffvklpkyZgqCgILz55psYNmwYTpw4gYiICADAuXPn0K1bN7VEoqKi8MMPP2DChAm4ePEiHn300XLX+dxzz8FqteIvf/kLiouLq1wLW7p0KQDg3nvvrdZ9rc1tXM2hQ4dw1113YcKECRgzZgzee+89jB07FklJSWjXrh0A4OzZs+jTpw8cDgeefPJJBAQEYN68efDz8yt3XdV5LwLAhAkT8P777yM1NRUPPPAAHA4H1q5di40bN+KGG25Qz1ed56Uuavqe91pCQxYsWCAAiISEBGGxWMTXX39d5XlnzJghrrx7BQUFFc6XnJwsmjVrpv7/q6++EgDEli1bqrzuRx55RAQHBwuHw1HleZ577jkREBAg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xmLSpEnizJkz5W4vNzdXPPXUU6J58+bCarWKyMhI0b17d/Haa6+JkpISIcR/h1q++uqrFe4TADFjxowKp8+fP18AEEFBQaKwsLDSx2rHjh3izjvvFBEREcJms4mEhAQxYsQI8dNPP6nnKXuM0tPTK1ze4XCIP/3pTyIqKkooilLhsZw3b55ISkoSfn5+IigoSHTo0EFMmzZNnD59Wj1PdYakCiHERx99JJo1ayasVqvo1KmTWL58eZVDUqv7OC1atEi0bt1a2Gw20b59e/Htt9+KYcOGidatW1f6eF1p1apVIjk5WYSEhAhfX1+RmJgoxo4dW+51UNWQ1IcffrjC9V05fFEIIc6dOycefvhhER8fLywWi4iJiRH9+vUT8+bNK5cDgFi8eHG1cpcpLCwUr7/+urjppptEcHCw8PHxETExMWLw4MHi448/Ljec+lq3sW3bNtG1a1f1tT5z5swqh6QOGjSowuUrG3b822+/id69ewtfX18RFxcnnnvuOfHuu+/W+L0oROlr9dVXXxWtW7cWVqtVREVFidTUVLFt2zb1PDV5XlasWCHat28vrFaraNWqlfjoo4+qNSRViOq9572dIoSb9tAReblOnTohKirqqkOJiYxO0/sUiCpjt9srbL9dvXo1du3adc1pN4iMjmsKpDvHjh1D//79ce+99yI2Nhb79+/H3LlzERISgj179rhlSgMivdL8jmaiK4WFhSEpKQnvvPMO0tPTERAQgEGDBuGll15iIRBdA9cUiIhIxX0KRESkYikQEZGKpUBERCqWAhERqVgKRESkYikQEZGKpUBERCqWAhERqVgKRESkYikQEZGKpUBERCqWAhERqVgKRESkYikQEZGKpUBERCqWAhERqVgKRESkYikQEZGKpUBERCqWAhERqVgKRESkYikQEZGKpUBERCqWAhERqVgKRESkYikQEZGKpUBERCqWAhERqVgKRESkYikQEZGKpUBERCqWAhERqVgKRESkYikQEZGKpUBERCqWAhERqVgKRESkYikQEZGKpUBERCof2QGI3M3hdOF8bjHOXSxCdoEdBSVO5Jc4UFjiREGJEwUljku/nSiyO6EAMJuUij+KArNZgZ/FjFA/C0L9rQjxtyDUz4IwfytC/S0I9rXAZFJk32Uit2EpkOZkF5Tg0Pk8HE7Pw+nsIpzPLcK5i6UlcO5iETLz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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "school = { \n", - " \"1. Klasse\": 42,\n", - " \"2. Klasse\": 30,\n", - " \"3. Klasse\": 26,\n", - " \"4. Klasse\": 45,\n", - "}\n", - "\n", - "plt.pie(school.values()) # Pie Chart\n", - "\n", - "plt.title(\"Klassenverteilung einer Grundschule\")\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "d44f2914-3a55-4f00-b580-498931891efa", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-aec08dc408437049", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Styling\n", - "\n", - "Alle Parameter wie `title`, `color`, `xlabel`, `ylabel`, etc. lassen sich auch für das Pie Chart setzen. Die Beschriftung der einzelnen Stücke jedoch Funktioniert etwas anders.\n", - "\n", - "Dazu wird der Parameter `label` mit den dazugehörigen Werten ausgestattet:" - ] - }, - { - "cell_type": "code", - "execution_count": 95, - "id": "130abb6f-9241-4d2f-8975-8baaf7df6482", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-c742155fd484b71b", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "school = { \n", - " \"1. Klasse\": 42,\n", - " \"2. Klasse\": 30,\n", - " \"3. Klasse\": 26,\n", - " \"4. Klasse\": 45,\n", - "}\n", - "\n", - "plt.pie(school.values(), labels=school.keys()) # Setzen der Labels\n", - "\n", - "plt.title(\"Klassenverteilung einer Grundschule\")\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "5a3a3264-e1af-4c7f-91f9-8bae4dfedb32", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-5336af155ef45527", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "Zum setzen von Prozentwerten wird der Parameter `autopct` verwendet. Dieser nutzt einen Format String oder eine Funktion zum definieren der Werte. Schaue dazu für mehr in die Dokumentation für [autpct](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.pie.html#matplotlib-pyplot-pie), eine Dokumentation zu Formatstrings findest du [hier](https://www.geeksforgeeks.org/format-specifiers-in-c/).\n", - "\n", - "Beispiel für Prozentwerte:" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "id": "f575e892-bbe5-45ae-8df4-f1dfa54b1d1b", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-183044afa87a0492", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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duTXX3/lyJEjTJ48mdGjR7N7d9EUPnFxcYwYMYIJEyZw/PhxoqKiGDJkCIqiUFhYyODBg4mIiODQoUPs2LGDyZMno9FoANiyZQtjxozhqaee4tixY8ydO5eFCxfy9ttvV+rxqUFGZ4kqsTNuJ/87+j/G/ZCGx0bpyrInrnfdhc/IR/Ho2RONXl/j+1+6dClvv/02e/bswWg0cv/999OuXTtmz55d7m3ExMQQEhKCwWAgPDyc9evXo7tptuCoqCi6detGSkoK3t7eZW6nf//+tGjRglmzZrF//346duxITEwMDRo0KLFecnIyvr6+REVFERERUWo7PXv2pEePHsyYMaN42TfffMMLL7zAlStXyv24rIEcExFVonNAZzoHdCa/SQwpwUtIXfET5vR0tWMJC2lcXfEaMACfRx/F2LyZajkuXrzIU089xfr16zEajZXe3sCBA/npp5/48ccfefjhh2+7rslk4p133uH777/n8uXL5Ofnk5eXh6urKwBt27alR48ehIWFERkZSe/evXnooYfw8fGhVq1ajBs3jsjISHr16kXPnj0ZNmwYAQEBABw8eJBt27aVaHmYTCZyc3PJzs4u3octkJaIqBbmnBzSVq4kdel35B47pnYcUU6Ghg3xeXQEXg8+iM7DQ+04/PTTTzz44IMlWg0mkwmNRoNWqyUvL69Ui6Is11siBw4cYOXKlbzxxht8++23DBv219U/b26JvPfee8yaNYvZs2cTFhaGm5sbTz/9NE5OTvz0009A0SUWtm/fzm+//caKFSuIj49n165dhISEAHDgwAHWrl3LypUrOXz4MOvXr6dz5864uLgwc+ZMhgwZUipro0aN0NrQJYGlJSKqhdbFBZ9hw/AZNoy806dJW7mK9FWrKLCxproj0Hp44NGrF14D+uPauXNxv7016NGjB4cPHy6xbPz48bRo0YJ//OMf5SogN3vllVfQarWMHDkSRVEYPnx4mett27aNQYMGMWrUKADMZjOnTp0i9IYz8DUaDeHh4YSHh/Pqq6/SoEEDVqxYwbPPPgtA+/btad++PTNmzKBLly4sXryYzp0706FDB06ePEmTJhU/B8vaSBER1c65aVP8n30Gv2eeJmfvXtJ+WUn6unXS3aUijdGI+/3349nvAdwjIqr13I7K8PDwoHXr1iWWubm54evrW2L5mDFjCAoK4t133y3Xdl966SV0Oh0jR47EbDYzYsSIUus0bdqU5cuXs337dnx8fPjwww9JSEgoLiK7du3ijz/+oHfv3vj7+7Nr1y4SExNp2bIl58+fZ968eQwcOJDAwEBOnjzJ6dOnGTNmDACvvvoq/fv3Jzg4mIceegitVsvBgwc5cuQIb731lqVPlyqkiIgao9FocL37blzvvps6r7xM5qZNpP+ykswtW1Byc9WOZ/+cnHALvxevfv1w794Dnbv9XMsjNja2wl1AL774IlqtltGjR6MoCoGBgSVuf/nllzl37hyRkZG4uroyefJkBg8eTFpaGgCenp5s3ryZ2bNnk56eToMGDfj3v/9N3759SUhI4MSJEyxatIikpCQCAgKYNm0aU6ZMASAyMpJVq1bxxhtv8P7776PX62nRogWTJk2qmiekBskxEaE6c24uWTt3krV5M5mbNlNw+bLakeyGzssL13u74H5fV9y7d8OpkudYCHEzKSLC6uSdOUPmps1kbt5M9v79UFCz14S3aVotxrDWRUWj630Yw8LQWHDcQIjykiIirJopM5Os7dvJ3rOXnOhock+ckKJyE31wMK4dO+Le9T7c7r0X3S3OcRCiOkgRETbFnJtL7pEjZB84QE70QXKiozElJakdq8ZovbxwCQvDpU0bXNq2wdimjXRRCVVJERE2Lz82lpyDB8k7dYq8s+fIP3uW/EuXwGRSO1ql6Pxq49ygIc7NmmJs0waXtm0xNGxoVUNwhZAiIuySOT+f/JgY8s+dI+/MWfLPnSXv3HkK4+MxWdH1IjQuLhgaNsTQsAHOISEYQkKKfg8JqZGJDYWoLCkiwuGY8/MxJSZSmJhIwZ/fb/wyZ2Wh5OZhzs0p+p6Xi5Kbh5Kbi3Lz8RitFo1ej8ZgKPoq/lmP1s0Nnbc3Tt4+6Hx80NWqhVPt2jj5++Pk54eTvx86b29pWQibJkVEiApQTKaic1o0mqJi4SSnWgnHJkVECCGExWxnli8hhBBWR4qIEEIIi0kREUIIYTEpIkIIISwmRUQIIYTFpIgIIYSwmBQRIYQQFpMiIoQQwmJSRIQQQlhMiogQQgiLSRERQghhMSkiQgghLCZFRAghhMWkiAghhLCYFBEhhBAWkyIihBDCYlJEhBBCWEyKiBBCCItJERFCCGExKSJCCCEsJkVECCGExaSICCGEsJgUESGEEBaTIiKEEMJiUkSEEEJYTIqIEEIIi0kREUIIYTEpIkIIISwmRUQIIYTFpIgIIYSwmBQRIYQQFpMiIoQQwmJSRIQQQlhMiogQQgiLSRERQghhMSkiQgghLCZFRAghhMWkiAghhLCYFBEhhBAWkyIihBDCYlJEhBBCWEyKiBBCCItJERFCCGExKSJCCCEsJkVECCGExf4f59WeRDaWR/cAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "school = { \n", - " \"1. Klasse\": 42,\n", - " \"2. Klasse\": 30,\n", - " \"3. Klasse\": 26,\n", - " \"4. Klasse\": 45,\n", - "}\n", - "\n", - "plt.pie(school.values(), labels=school.keys(), autopct='%1.1f%%') # Setzen von Prozentwerten\n", - "\n", - "plt.title(\"Klassenverteilung einer Grundschule\")\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "b53f5919-ed5a-4a68-9420-911098cf2491", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-430a11a7f58f4fa5", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "Pie Charts haben auch einen Parameter `shadow`. Dieser ist Standardmässig `False`. Setzt man den Wert auf `True` sieht man einen Schatten:" - ] - }, - { - "cell_type": "code", - "execution_count": 98, - "id": "f5f47060-123c-4b4f-b518-4fc0a795dfb0", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-408e63a1464d64ea", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - }, - "scrolled": true - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAGbCAYAAAAFuq0xAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAABvNklEQVR4nO3dd3hUZfrw8e/MZErapAdIIYRQA0EgimBgAQkEpAiiIFLEyq646u7rqqyuLpZVV9fVVde1/ER3FRuKXREVpHdCkQ4JAVJI75l2zvtHIBASIBmSnGRyf65rriRnnjnnPpOZuecp53l0qqqqCCGEEG7Qax2AEEKItkuSiBBCCLdJEhFCCOE2SSJCCCHcJklECCGE2ySJCCGEcJskESGEEG6TJCKEEMJtkkSEEEK4TZII8Ne//hWdTqd1GO3aiBEjGDFiRM3f6enp6HQ63nnnHc1iakryGmta77zzDjqdjvT09Cbft06n4+67727SfXbp0oW5c+c26T5bC49NIqdfZFu2bKm1vbi4mEGDBmGxWPj+++81is6zfPvtt/z1r3/VOgzhJpvNxssvv8zQoUMJCgrCZDIRERHBpEmT+OCDD3C5XFqHKFoxj00i9SkpKWHMmDHs3LmTpUuXMnbsWK1D8gjffvstCxcuvKR9/PDDD/zwww9NFFHr88gjj1BZWal1GHXk5uaSlJTEPffcg5+fH4888givv/46v//97ykvL+emm27ib3/7m9ZhilbMS+sAWkppaSkpKSmkpqby2WefMW7cOK1DavPKy8vx9fVtkn2ZTKYm2U9r5eXlhZdXy7/dqqqqMJlM6PX1f1+cPXs227dv59NPP+W6666rdd+CBQvYsmUL+/fvv6RjCM/WLv7rZWVljB07lm3btvHpp58yfvz4iz5m0aJFXH311YSHh2M2m4mPj+e1116rU27Lli2kpKQQGhqKt7c3sbGx3HrrrbXKfPjhhyQmJuLv74/VaiUhIYGXXnqpVpmioiLuu+8+oqOjMZvNdOvWjWeffRZFUWrKnO4neP7553njjTeIi4vDbDZzxRVXsHnz5ppyzz//PDqdjqNHj9aJd8GCBZhMJgoLC2u2bdy4kbFjxxIQEICPjw/Dhw9n7dq1tR53uk1/z5493HTTTQQFBTF06FDmzp3Lq6++ClS3JZ++naYoCi+++CJ9+vTBYrHQoUMH5s2bV+v4ULdPpD7nKzN37ly6dOnS6OfptE8++YT4+HgsFgt9+/Zl6dKldfZ5Id999x3Dhg3D19cXf39/xo8fz6+//lqrTH19Iqfb3j///HP69u2L2WymT58+9TaznjhxgltvvZUOHTrUlHv77bdrlVm5ciU6nY4PP/yQRx55hMjISHx8fCgpKak37vXr17Ns2TLuvPPOOgnktMsvv5yZM2c26Bjn6/epr/+iS5cuTJgwgTVr1tQ0L3ft2pX//ve/dR7/66+/cvXVV+Pt7U1UVBRPPvlkrffFaQ15LyqKwksvvURCQgIWi4WwsDDGjh1bp9kbuOj/5XyvkYb2fzXkPd8WeHxNpLy8nHHjxrF582aWLFnChAkTGvS41157jT59+jBp0iS8vLz46quvuOuuu1AUhfnz5wNw8uRJxowZQ1hYGA899BCBgYGkp6fz2Wef1exn+fLlzJgxg1GjRvHss88CsHfvXtauXcu9994LQEVFBcOHD+fEiRPMmzePzp07s27dOhYsWEBWVhYvvvhirdgWL15MaWkp8+bNQ6fT8fe//53rrruOI0eOYDQamTZtGg888AAff/wxf/rTn2o99uOPP2bMmDEEBQUB8PPPPzNu3DgSExN57LHH0Ov1NQl09erVDBo0qNbjb7jhBrp3787f/vY3VFVlwIABZGZmsnz5cv73v//VeR7nzZvHO++8wy233MI999xDWloar7zyCtu3b2ft2rUYjcYG/T/ccbHnCeCbb75h+vTpJCQk8PTTT1NYWMhtt91GZGRkg47xv//9j5tvvpmUlBSeffZZKioqeO211xg6dCjbt2+/aCJas2YNn332GXfddRf+/v7861//YurUqWRkZBASEgJATk4OgwcPrkk6YWFhfPfdd9x2222UlJRw33331drnE088gclk4v7778dms523lvfVV18BMGvWrAadqzvHuJBDhw5x/fXXc9ttt3HzzTfz9ttvM3fuXBITE+nTpw8A2dnZjBw5EqfTyUMPPYSvry9vvPEG3t7etfbVkPciwG233cY777zDuHHjuP3223E6naxevZoNGzZw+eWX15RryP/lUjT2Pd+qqR5q0aJFKqDGxMSoRqNR/fzzz89b9rHHHlPPfSoqKirqlEtJSVG7du1a8/fSpUtVQN28efN5933vvfeqVqtVdTqd5y3zxBNPqL6+vuqBAwdqbX/ooYdUg8GgZmRkqKqqqmlpaSqghoSEqAUFBTXlvvjiCxVQv/rqq5ptQ4YMURMTE2vtb9OmTSqg/ve//1VVVVUVRVG7d++upqSkqIqi1Dr32NhYdfTo0TXbTj9HM2bMqBP//Pnz6zx/qqqqq1evVgH1/fffr7X9+++/r7N9+PDh6vDhw2v+Pn2uixYtOm+Z026++WY1JiamzmMb8jwlJCSoUVFRamlpac22lStX1rx2LqS0tFQNDAxU77jjjlrbs7Oz1YCAgFrb63uNAarJZFIPHTpUs23Hjh0qoL788ss122677Ta1U6dOal5eXq3H33jjjWpAQEDNa3XFihUqoHbt2rXe1++5pkyZogJqUVFRre2VlZVqbm5uza2wsLDmvgsdo75zVNUz78W0tLSabTExMSqgrlq1qmbbyZMnVbPZrP6///f/arbdd999KqBu3LixVrmAgIBa+2zIe/Hnn39WAfWee+6pc9/Zr/+G/l/Ofd1d6HmIiYlRb7755pq/G/qebws8vjkrJycHi8VCdHR0ox539jed4uJi8vLyGD58OEeOHKG4uBiAwMBAAL7++mscDke9+wkMDKS8vJzly5ef91iffPIJw4YNIygoiLy8vJpbcnIyLpeLVatW1So/ffr0mpoEwLBhwwA4cuRIrTJbt27l8OHDNds++ugjzGYz1157LQCpqakcPHiQm266ifz8/JrjlpeXM2rUKFatWlWnav3b3/72vOdR33kFBAQwevToWueVmJiIn58fK1asaPC+3HGx5ykzM5Ndu3YxZ84c/Pz8asoNHz6chISEi+5/+fLlFBUVMWPGjFrnZzAYuPLKKxt0fsnJycTFxdX83a9fP6xWa02Mqqry6aefMnHiRFRVrXWclJQUiouL2bZtW6193nzzzXW+qdfndDPX2ecO8J///IewsLCa29ChQ+s8tqHHuJD4+Pia/wlAWFgYPXv2rPU6/vbbbxk8eHCtGnFYWFitJjZo2Hvx008/RafT8dhjj9W579zmp4v9Xy5VY9/zrZnHJ5HXX38dk8nE2LFjL9pBeLa1a9eSnJyMr68vgYGBhIWF8ec//xmgJokMHz6cqVOnsnDhQkJDQ7n22mtZtGgRNputZj933XUXPXr0YNy4cURFRXHrrbfWaVs9ePAg33//fa03blhYGMnJyUB1Vf1snTt3rvX36Q/Ks/sZbrjhBvR6PR999BFQ/WH0ySefMG7cOKxWa81xofoD4dxjv/XWW9hstppzPS02NrbBz+HBgwcpLi4mPDy8zv7LysrqnFdTu9jzdLrPqFu3bnUeW9+2c51+/q6++uo65/fDDz806PzOjfF0nKdjzM3NpaioiDfeeKPOMW655Rag7uujof8jf39/oLrP8GxTp05l+fLlLF++nH79+tX72Ma8Ds7nYucO1f+j7t271ynXs2fPWn835L14+PBhIiIiCA4ObpLYLkVj3/Otmcf3icTHx/Ptt98yatQoRo8ezdq1ay9aKzl8+DCjRo2iV69evPDCC0RHR2Mymfj222/55z//WfPtXKfTsWTJEjZs2MBXX33FsmXLuPXWW/nHP/7Bhg0b8PPzIzw8nNTUVJYtW8Z3333Hd999x6JFi5gzZw7vvvsuUN3ZN3r0aB544IF64+nRo0etvw0GQ73l1LNWOo6IiGDYsGF8/PHH/PnPf2bDhg1kZGTU9MucPi7Ac889R//+/evd57nfUhvz7VNRFMLDw3n//ffrvT8sLKzB+4Lq51utZzXn813H0JDn6VKcfv7+97//0bFjxzr3N2Q01sViPH2MWbNmcfPNN9db9twP+ob+j3r16gXA7t27SUpKqtkeHR1d8x45/U35XPUd43ydyS3x/2nIe7ExGhJbY8/3bI19z7dmHp9EAAYNGsTnn3/O+PHjGT16NKtXr77gB9hXX32FzWbjyy+/rPWN5HzNE4MHD2bw4ME89dRTLF68mJkzZ/Lhhx9y++23A9XDVydOnMjEiRNRFIW77rqL119/nb/85S9069aNuLg4ysrKar6FNJXp06dz1113sX//fj766CN8fHyYOHFizf2nq+tWq/WSjn2+N1NcXBw//vgjSUlJl9z0AdUfaPU1J9Q3Cq0hYmJigOoO3nPVt+1cp5+/8PDwJv/fnRYWFoa/vz8ul6vJjzFhwgSeeeYZ3n///VpJxF2na3pFRUU1zUvg/v8Hqv9Hp2t8Zztfq8KF3otxcXEsW7aMgoKCBtVGLiYoKIiioqI62xtyvs31nteCxzdnnTZq1Cg++OADDh06xNixY8877BHOfAs5+1tHcXExixYtqlWusLCwzrem09/oT1ej8/Pza92v1+trvjmeLjNt2rSa4ZbnKioqwul0NuQU65g6dSoGg4EPPviATz75hAkTJtS6riMxMZG4uDief/75Ok0aUN2U0hCn93nuG2ratGm4XC6eeOKJOo9xOp31vgEvJC4ujn379tWKa8eOHXWGIzdUREQEffv25b///W+t8//ll1/YtWvXRR+fkpKC1Wrlb3/7W73t8A19/i7EYDAwdepUPv30U3bv3t2kx0hKSmL06NG88cYbfPHFF/WWaUyt4HRSPbs9v7y8vKbG7Y5rrrmGDRs2sGnTppptubm5dWq3DXkvTp06FVVV670w1p3aT1xcHMXFxezcubNmW1ZWFkuXLr3oY5vrPa+FdlETOW3KlCm8+eab3HrrrUyaNInvv/8ei8VSp9yYMWNqag/z5s2jrKyMN998k/DwcLKysmrKvfvuu/z73/9mypQpxMXFUVpayptvvonVauWaa64B4Pbbb6egoICrr76aqKgojh49yssvv0z//v3p3bs3AH/605/48ssvmTBhQs0Qx/Lycnbt2sWSJUtIT08nNDS00ecbHh7OyJEjeeGFFygtLWX69Om17tfr9bz11luMGzeOPn36cMsttxAZGcmJEydYsWIFVqu1ZhjohSQmJgJwzz33kJKSgsFg4MYbb2T48OHMmzePp59+mtTUVMaMGYPRaOTgwYN88sknvPTSS1x//fUNPp9bb72VF154gZSUFG677TZOnjzJf/7zH/r06XPBLwUX8re//Y1rr72WpKQkbrnlFgoLC3nllVfo27dvvYn1bFarlddee43Zs2czcOBAbrzxRsLCwsjIyOCbb74hKSmJV155xa24zvbMM8+wYsUKrrzySu644w7i4+MpKChg27Zt/PjjjxQUFLi97/fee4+xY8cyefJkxo0bR3JyMkFBQWRnZ/Pjjz+yatWqBl+YO2bMGDp37sxtt93Gn/70JwwGA2+//XbNc+KOBx54gP/973+MHTuWe++9t2aIb0xMTK0P74a8F0eOHMns2bP517/+xcGDBxk7diyKorB69WpGjhzZ6PmybrzxRh588EGmTJnCPffcUzO8u0ePHnUGO5yrud7zmtBgRFiLOD2ssL4hf88//7wKqBMmTFAdDke9Q/K+/PJLtV+/fqrFYlG7dOmiPvvss+rbb79da1jhtm3b1BkzZqidO3dWzWazGh4erk6YMEHdsmVLzX6WLFmijhkzRg0PD1dNJpPauXNndd68eWpWVlat45WWlqoLFixQu3XrpppMJjU0NFS96qqr1Oef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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "school = { \n", - " \"1. Klasse\": 42,\n", - " \"2. Klasse\": 30,\n", - " \"3. Klasse\": 26,\n", - " \"4. Klasse\": 45,\n", - "}\n", - "\n", - "plt.pie(school.values(), labels=school.keys(), autopct='%1.1f%%', shadow=True) # Zeige einen Schatten\n", - "\n", - "plt.title(\"Klassenverteilung einer Grundschule\")\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "4dc1531b-4c95-4f39-8f47-209e0df9cdc8", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-376fc818f2a3d818", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "Zum herausnehmen von Kuchenstücken gibt es den Parameter `explode` dieser erwartet eine Liste mit Fließkommezahlen die zwischen 0.0 - Standardwert und 1.0 - absoluter Explode liegen.\n", - "\n", - "Beispiel Klasse 3 ist vom Ursprung 20% entfernt:" - ] - }, - { - "cell_type": "code", - "execution_count": 99, - "id": "5788aefe-5e4f-4430-b7a6-af82f3b1541b", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-e3921561732c3895", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "school = { \n", - " \"1. Klasse\": 42,\n", - " \"2. Klasse\": 30,\n", - " \"3. Klasse\": 26,\n", - " \"4. Klasse\": 45,\n", - "}\n", - "\n", - "plt.pie(school.values(), labels=school.keys(), autopct='%1.1f%%', explode=[0, 0, 0.2, 0]) # Zeige einen Schatten\n", - "\n", - "plt.title(\"Klassenverteilung einer Grundschule\")\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "cb2b8d52-cd07-4ed4-a4b6-46d90fd6b614", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-ed3d080835960776", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Aufgabe\n", - "\n", - "Ihnen ist ein Datenset `sec_school` einer Hauptschule gegeben, welches die Klassenstufen von 5 bis 9 auf die Anzahl ihrer Schüler im Jahrgang mappt. \n", - "\n", - "Definieren Sie einen Pieplot. Gehen Sie dabei wie folgt vor:\n", - "1. Definieren Sie ein geeignetes Farbschema zur Darstellung der Daten.\n", - "2. Extrahieren Sie die Schlüssel und Werte aus dem Datenset und übergeben Sie diese zusammen mit den Farbwerten an die Funktion `plt.pie`. (Nutzen Sie zum Anzeigen der Prozentwerte autopct='%1.1f%%')\n", - "3. Lassen Sie die 6. Klasse 25% und die 9. Klasse 40% explodieren.\n", - "4. Setzen Sie einen geeigneten Titel für den Plot.\n", - "5. Plotten Sie den Werte." - ] - }, - { - "cell_type": "code", - "execution_count": 104, - "id": "143c7633-8e06-45a5-9aff-864eb0dc21d3", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-bf48088c515caf5c", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [], - "source": [ - "sec_school = {\n", - " '5. Klasse': 29,\n", - " '6. Klasse': 35,\n", - " '7. Klasse': 25,\n", - " '8. Klasse': 28,\n", - " '9. Klasse': 31\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 105, - "id": "32479818-10ee-4800-86b6-a811bc72cb03", - "metadata": { - "nbgrader": { - "grade": true, - "grade_id": "cell-d201bd3e919fcf1c", - "locked": false, - "points": 5, - "schema_version": 3, - "solution": true, - "task": false - }, - "scrolled": true - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAGbCAYAAAAcMUOXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB6G0lEQVR4nO3dd3hTZfvA8W+SNt2bttBBaQu0jCJDkCkioyDIVBGRJSjvDxSV14Xi3oK+KiqKAxEU2QIiSxFk7z1LoayWtnTvkZzfH5VKbYG2NDlJen+uK5c2OTnPfUKSO8/WKIqiIIQQQgiz0qodgBBCCFEbSQIWQgghVCAJWAghhFCBJGAhhBBCBZKAhRBCCBVIAhZCCCFUIAlYCCGEUIEkYCGEEEIFkoCFEEIIFUgCNrPXXnsNjUajdhi12l133cVdd91V+ndcXBwajYbvv/9etZhqkrzHatb333+PRqMhLi6uxs+t0Wh4/PHHa/ScDRo0YPTo0TV6TmEakoBrwNUP6J49e8rcn5GRQbt27XB0dGTNmjUqRWdbfvvtN1577TW1wxDVVFBQwIwZM+jcuTNeXl7o9XoCAgLo378/8+fPx2AwqB2iEGYjCdhEMjMz6dWrF4cOHWLZsmX07t1b7ZBswm+//cbrr79+S+dYt24d69atq6GILM/UqVPJy8tTO4xykpOT6dSpE5MmTcLV1ZWpU6fy1Vdf8cQTT5CTk8NDDz3EO++8o3aYQpiNndoB2KKsrCyio6M5cOAAS5cupU+fPmqHZPVycnJwcXGpkXPp9foaOY+lsrOzw87O/B/t/Px89Ho9Wm3Fv+tHjBjB/v37WbJkCYMHDy7z2JQpU9izZw8nT568pTKEsCbyLq5h2dnZ9O7dm3379rFkyRL69u170+fMnj2bu+++Gz8/PxwcHGjatCkzZ84sd9yePXuIjo6mTp06ODk5ERoayiOPPFLmmJ9//pk2bdrg5uaGu7s7UVFRfPLJJ2WOSU9P56mnniI4OBgHBwcaNmzI+++/j9FoLD3mar/o9OnTmTVrFuHh4Tg4ONC2bVt2795detz06dPRaDScO3euXLxTpkxBr9eTlpZWet/OnTvp3bs3Hh4eODs707VrV7Zu3VrmeVf7MI8dO8ZDDz2El5cXnTt3ZvTo0Xz++edASd/Z1dtVRqORjz/+mGbNmuHo6Ii/vz/jx48vUz6U7wOuyPWOGT16NA0aNKjy63TVokWLaNq0KY6OjjRv3pxly5aVO+eNrF69mi5duuDi4oKbmxt9+/bl6NGjZY6pqA/4al/jL7/8QvPmzXFwcKBZs2YVdo1cunSJRx55BH9//9LjvvvuuzLHbNy4EY1Gw88//8zUqVMJDAzE2dmZzMzMCuPevn07a9eu5bHHHiuXfK+6/fbbGT58eKXKuF4/d0X9tQ0aNKBfv35s2bKltEsoLCyMH374odzzjx49yt13342TkxNBQUG89dZbZT4XV1Xms2g0Gvnkk0+IiorC0dERX19fevfuXa6rCrjpv8v13iOV7e+vzGdemJ/UgGtQTk4Offr0Yffu3SxevJh+/fpV6nkzZ86kWbNm9O/fHzs7O1auXMmECRMwGo1MnDgRgKSkJHr16oWvry8vvPACnp6exMXFsXTp0tLzrF+/nmHDhtG9e3fef/99AI4fP87WrVt58sknAcjNzaVr165cunSJ8ePHU79+fbZt28aUKVNISEjg448/LhPbTz/9RFZWFuPHj0ej0fDBBx8wePBgzpw5g729PQ888ADPPfccCxcu5Nlnny3z3IULF9KrVy+8vLwA2LBhA3369KFNmza8+uqraLXa0h8fmzdvpl27dmWef//999OoUSPeeecdFEWhVatWxMfHs379eubOnVvudRw/fjzff/89Y8aMYdKkSZw9e5bPPvuM/fv3s3XrVuzt7Sv171EdN3udAFatWsXQoUOJiori3XffJS0tjbFjxxIYGFipMubOncuoUaOIjo7m/fffJzc3l5kzZ9K5c2f2799/0yS+ZcsWli5dyoQJE3Bzc+PTTz9lyJAhnD9/Hh8fHwASExNp3759acL29fVl9erVjB07lszMTJ566qky53zzzTfR6/U888wzFBQUXLd1YeXKlQA8/PDDlbrW6pRxI6dPn+a+++5j7NixjBo1iu+++47Ro0fTpk0bmjVrBsDly5fp1q0bxcXFvPDCC7i4uDBr1iycnJzKnKsyn0WAsWPH8v3339OnTx/GjRtHcXExmzdvZseOHdx+++2lx1Xm3+VWVPUzL8xIEbds9uzZCqCEhIQo9vb2yi+//HLdY1999VXl3y97bm5uueOio6OVsLCw0r+XLVumAMru3buve+4nn3xScXd3V4qLi697zJtvvqm4uLgop06dKnP/Cy+8oOh0OuX8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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# BEGIN SOLUTION\n", - "plt.pie(\n", - " sec_school.values(),\n", - " labels=sec_school.keys(),\n", - " autopct='%1.1f%%',\n", - " explode=[0, 0.25, 0, 0, 0.4]\n", - ")\n", - "\n", - "plt.title(\"Klassenverteilung einer Grundschule\")\n", - "\n", - "plt.show()\n", - "# END SOLUTION" - ] - }, - { - "cell_type": "markdown", - "id": "83c08253-bc04-4b87-b906-4002ff210bad", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-e189ada272b135b2", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "---\n", - "\n", - "# Extra\n", - "\n", - "Das Meme:\n", - "\n", - "![](https://flowingdata.com/wp-content/uploads/2014/12/Pie-Pyramid-620x311.png)\n", - "\n", - "lässt sich mit folgendem Python Code replizieren:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "0079d10b-26fb-4aaa-b925-c6e31e456c6c", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-1120f5b30213d9b5", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGFCAYAAAABwtJNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAABHcklEQVR4nO3deVxU5f4H8M+ZgWGAAYYdRMQNN1yCTFPL9bpmmhuZZWLKr3tbbL/3WmGWbVqamZVLCi6ZW8XVXLtezS3XRM1d0khFXNiXgVnO7w+DREC2mTlzznzer5cvazic84WRw+ec53ueRxBFUQQRERGRQqikLoCIiIjImhhuiIiISFEYboiIiEhRGG6IiIhIURhuiIiISFEYboiIiEhRGG6IiIhIURhuiIiISFEYboiIiEhRGG6IiIhIURhuiIiISFEYboiIiEhRGG6IiIhIURhuiIiISFEYboiIiEhRGG6IiIhIURhuiIiISFEYboiIiEhRGG6IiIhIURhuiIiISFEYboiIiEhRGG6IiIhIURhuiIiISFEYboiIiEhRGG6IiIhIURhuiIiISFEYboiIiEhRGG6IiIhIURhuiIiISFEYboiIiEhRGG6IiIhIURhuiIiISFEYboiIiEhRGG6IiIhIURhuiIiISFEYboiIiEhRGG6IiIhIURhuiIiISFEYboiIiEhRGG6IiIhIURhuiIiISFEYboiIiEhRGG6IiIhIURhuiIiISFEYboiIiEhRXKQugMgWcorNuGEw46bh1t83iiy4WWzGjSIz8owWmCwizCJgFkWYLLf+FgC4qASoBUAtCHBRARq1AF83NQK0avhrb/9bhQB3NdzUvD4gInI0DDckO0UmC85kl+BMlvHW39kluFRgwo2iW2Ems9gMo8U+tXi6CAhwvxV4ArVqNPV2RUu9Bq18NWip1yDCywWCINinGCIiAgAIoiiKUhdBVJlL+UacyTbidFZJWYg5nVWCP/JNkMs/WncXAZE+5QNPK70GLX010Lnyrg8RkS0w3JBDKDZbcCDDgD1XDdidXoS9V4uQVWyn2y8Saal3xQOh7ngg1B3dQtwRqddIXRIRkSIw3JAkbhrM2JNehN3pRdhztQiHrxej2Ozc/xSD3dXoVhZ2tIgJ1MJFxSEtIqLaYrghu8gymLH5jwL871Ih9lw14HRWiWyGlqTi4SKgc7AWD4S6o3+4J7qEaKFi/w4RUbUYbshmzmWXYN3FfKy/WIA9V4tgUvYok80FaNUYFOGJhxt7on+4J7w07NkhIqoMww1Z1ZHrBqxNzcd3v+XjdHaJ1OUolkYloHdDd4xs6oVHmurgr1VLXRIRkcNguKF6O3TNgLWpeVibmo/UXKPU5TgdFxXQs4EHRjXTYVhTHQLdOcMDETk3hhuqkyyDGUvO5GLByRycyuIdGkfhogKGNNbh6TY+6BvuwTl2iMgpMdxQrexOL8L8E9lYm5oPg5M/3eTomni7Ir61D55q7Y1gD97NISLnwXBD1couNmPpn3dpTmTyLo3cuKqAoU10+L82PvhbQ97NISLlY7ihKu1NL8L8kzlYk5qHIhP/mShBM29XxLfxwfhW3gji3RwiUiiGGypHFEWsTc3H+79kIuVGsdTlkI1oVAIei/TCG/f6cWZkIlIchhsCAFhEEavO5+G9w5kcenIiagEY3dwLb3b0RytfhhwiUgaGGydntoj45tytUMN5aZyXSgBGNfNCQkc/RPm5SV0OEVG9MNw4KZNFxPKzuXj/cCbO5XBuGrpFADCimQ5TOvqjnT9DDhHJE8ONkzGaRSw9k4sPfsnkhHtUJQHAI010mHKfH+4J0EpdDhFRrTDcOJHk3/Lxyt7r+I2hhmphVDMdZnYNRLiXq9SlEBHVCMONEzibXYJJu65hyx+FUpdCMuXhImByjB9ei/aFm5oLdhKRY2O4UbB8owXTDt3E7KPZKLHwbab6a+btitkPBGJwY53UpRARVYnhRqFWnM3Faz9fx5UCs9SlkAI9FOGJ2Q8EorkPHx8nIsfDcKMwx24U4/nd17DzSpHUpZDCuakFvNzBF2/e6wcPVw5VEZHjYLhRiOxiMxIO3MSXv2aD61mSPTX0dMHMboGIbe4ldSlERAAYbhRh0+8FmLD9KtILOQRF0hnS2BMLegZzBXIikhzDjYzllVjw8p5r+OpUrtSlEAEAArRqfNkjCCOb8S4OEUmH4UamdlwuxPj/XcXFPJPUpRBV8FikFz5/MAi+WrXUpRCRE2K4kRmjWcTr+29gZkoW+MaRI2vgqcayPqHo3dBD6lKIyMkw3MjI2ewSjPkxHYevF0tdClGNqATg1Xt88W6nALiqBanLISInwXAjE4tO5uCF3ddQYOLbRfLTMdANK/qGIlLPeXGIyPYYbhxcodGCCdszsPJ8ntSlENWLzlXAwp7BGB3pLXUpRKRwDDcOLC3PiKGbriDlBoehSDkmx/jhvc7+EAQOUxGRbTDcOKjd6UUYsfkKrhVx7hpSniGNPbH8b6Hw0nBmYyKyPoYbB/TVyRw8u/MaF7skRYvy02DdwAZoyvWpiMjKGG4ciMki4qU91zH3eLbUpRDZhZ+bCmv6N+Dj4kRkVQw3DiLLYMaorenYdqlQ6lKI7MpFBczuFoRn2+mlLoWIFILhxgGcyizGkE1XcD7HKHUpRJJ5uo0PPnswiPPhEFG9MdxIbEtaAWK3piO3xCJ1KUSS697AHf8Z2AB6Ny7bQER1x3Ajoe9S8/DYj1fZOEx0m3sC3LD14TAEunN1cSKqG4YbiXx9Nhdx/7sKE2/YEFXQ2leD/w5piAaeDDhEVHsMNxJYeDIbf//pGnjDhqhqzbxdsW1oQ0R4uUpdChHJDGfQsrNPj2bh6R0MNkTVSc01ovv3f+BcdonUpRCRzDDc2NH7h2/ixT3XwVxDVDNp+SZ0T/4DJzK5BAkR1RyHpezkjX038P4vmVKXQSRLAVo1tjwchphArdSlEJEMMNzYwYu7r+HTY9lSl0Ekaz4aFTYNDkOXEHepSyEiB8dwY2PP77rG5RSIrETnKmDrww0ZcIjorthzY0PvHrrJYENkRflGEQ9vvIzTWWwyJqKqMdzYyOJTOUg4cFPqMogU56bBggE/XEJ6gUnqUojIQTHc2MCGi/l4+qcMqcsgUqzf80wY+MNl5JaYpS6FiBwQw42V7c8oQuzWdM48TGRjR28W45FNV1BiZtsgEZXHcGNFZ7NLMHjDFRSaeLIlsoftl4vw5Lar4HMRRHQ7hhsruVpoQv/1l3DDwNvkRPa06nweXt5zXeoyiMiBMNxYQW6JGQN/uIyLeWxwJJLC7GPZ+OgIJ8kkolsYburJaBYxfHM6Um5wengiKf3r5xv4+myu1GUQkQNguKmnl/dex7ZLhVKXQeT0RAATt2fg0DWD1KUQkcQYbuph2ZlcTtJH5EAMZhEjNl/BjSL2vhE5M4abOkq5YeBcNkQOKC3fhMd+TIfZwieoiJwVw00dZBrMGL45HUV85JvIIf33UiFe339D6jKISCIMN7UkiiLG/vcqLuQapS6FiO5ixpEsJP+WL3UZRCQBhpta+iglCxvTCqQug4hqYPz2q7jICxEip8NwUwt704vwBm91E8lGdrEFj25Nh5FLNBA5FYabGso0mDH6R64ZRSQ3B64Z8O99vCghciYMNzUU97+r+COfMxATydGso1n44SL7b4icBcNNDSSeysH6i+yzIZKz+B0ZyOLab0ROgeGmGukFJry8l4vyEcnd1UIzXuICm0ROgeGmGs/szEB2MRttiJRgyZlcbObTjkSKx3BzF6vP5yH5Ak+EREry9I4M5JXwgoVIyRhuqnDTYMbzu65JXQYRWVlavgn/3sfhKSIlY7ipwgu7ruEaF98jUqQvf83BziuFUpdBRDbCcFOJjb/n4+tzeVKXQUQ2IgKYuD0DRZy4ikiRGG7ukFtixtM7OBxFpHTncox468BNqcsgIhtguLnDP/fewKUCTtZH5AxmHc3CoWsGqcsgIitjuLnNvqtFWHAyR+oyiMhOzCLwfzsyIIpce4pISRhubvPazzfAUxyRczlyoxjLz7LHjkhJGG7+lPxbPnanF0ldBhFJ4M39N2BgczGRYjDcADBZRM57QeTE0vJNmHM8W+oyiMhKGG4ALDyZgzPZRqnLICIJffBLJjK5sCaRIjh9uMk3WvD2QT4OSuTssostePcwzwVESuD04WbGkUxkcCZiIgLw+fEcXMjlXVwiuXPqcJNeYMKslCypyyAiB1FiEfH6vhtSl0FE9eTU4WbKgRsoMPHhbyL6y6rzeTiYwYn9iOTMacPNycxiJJ7OlboMInIwIoDXfubTk0Ry5rTh5p1DmTDzpg0RVeKnK0X43yWuGk4kV04Zbi7mGrE2lTOSElHVPk7JlLoEIqojpww3nxzN4l0bIrqrzWmFOJFZLHUZRFQHThdusgxmLDrFxTGJ6O5EADP5NCWRLDlduPnyRDafkCKiGvn6bB6uFpqkLoOIasmpwk2JWcRnXD+GiGqoxCJizrFsqcsgolpyqnCz/GwurhZyNmIiqrl5J7JRYOSK4URy4jThRhRFjp8TUa1lFVvYp0ckM04TbjalFeBkVonUZRCRDM0+lg2zhb16RHLhNOHmY961IaI6upBrxLe/5UtdBhHVkFOEm2M3irH9cpHUZRCRjM0+ygskIrlwinCz+DTHy4mofn7OMOA0h7aJZEHx4cZoFvH1WS61QET1l8QLJSJZUHy4+eH3fNww8PFvIqq/pWdy2VhMJAOKDzeJp3OlLoGIFCK90IwtfxRIXQYRVUPR4eZaoQmb0ngiIiLr4QUTkeNTdLhZdT4PJk4sSkRW9MPFAuSWcKibyJEpOtysOMdGYiKyLoNZxPec84bIoSk23FzINWJfhkHqMohIgXjhROTYFBtuvjnHcXEiso1tlwpxrdAkdRlEVAUFhxteWRGRbZhFYHUqzzFEjkqR4SY1pwS/ZnImUSKyneQLfBKTyFEpMtxsTiuUugQiUrjd6UUoMPJxTCJHpMhww0m2iMjWis0idlzmhRSRI1JcuCkxi9jOEw4R2cHmP3iuIXJEigs3e64WId/ItV+IyPa2cAZ0IoekuHCzmScbIrKTczlG/JbDhxeIHA3DDRFRPXBoisjxKCrcpBeYcOwmr6KIyH44NEXkeBQVbviUFBHZ2/8uF8JoZp8fkSNRVrjh/DZEZGf5RhF7rhZJXQYR3UYx4cYiivjxEu/cEJH9sdePyLEoJtycySrBTQNnCyUi+9t71SB1CUR0G8WEm8PXi6UugYic1JEbBogi+26IHIWCwg2vnIhIGvlGEWezjVKXQUR/cpG6AGvhnRsiktLh6wa09NXU+vPMZjOMRgYjoupoNBqoVDW7J6OIcGMRRRy5wTs3RCSdw9eLMaZFzbcXRRFXr15Fdna2zWoiUhKVSoUmTZpAo6n+IkIR4eZstpHrSRGRpGo7NF4abIKCguDh4QFBEGxUGZH8WSwWXLlyBenp6WjUqFG1Py+KCDfstyEiqR25UQxRFGsUUsxmc1mw8ff3t0N1RPIXGBiIK1euwGQywdXV9a7bKqKhmOGGiKSWW2LBuZya9c6U9th4eHjYsiQiRSkdjjKbzdVuq5Bww2ZiIpJebS+0OBRFVHO1+XmRfbgRRRFHGG6IyAEcvsZzEZEjkH24OZdjRJ6RMxMTkfQ4RH6LIAhITk6WugxyYrJvKD6dVSJ1CUREAIAz2fU/HwlfnLVCJTUnPlOL59f/dP36dUyZMgUbNmxARkYGfH190aFDB0yZMgXdunWzQZVEtSP7cJOWz8mviMgxXC00o8QsQqNWdi/NiBEjUFJSgiVLlqBp06bIyMjAtm3bcPPmTalLIwKggGGp3/NMUpdARAQAEAH8ofALruzsbOzatQvTp09Hr169EBERgU6dOmHy5MkYMmRIpZ/z1ltvITQ0FEePHoW3tzfWrl1b7uPJycnw9PREXl6ePb4EcgIKCDfKPpEQkbwo/YJLp9NBp9MhOTkZxcV3b6AWRRHPP/88li5dil27dqFDhw4YPXo0EhMTy22XmJiIkSNHwsvLy5alkxNRQLhR9omEiORF6RdcLi4uSEpKwpIlS6DX69GtWze8/vrrOHbsWLntTCYTnnjiCWzbtg27d+9G8+bNAQATJ07Eli1bkJ6eDgC4du0aNm7ciKeeesruXwsplwLCjbJPJEQkL85wThoxYgSuXLmCdevWYcCAAdixYwdiYmKQlJRUts1LL72E/fv3Y+fOnQgLCyt7vVOnToiKisKSJUsAAMuXL0dERAS6d+9u7y+DFEzW4cZgsuBaUfUzFRIR2cvv+c5xN1mr1aJv375ISEjA3r17ERcXh7feeqvs43379sXly5exZcuWCp87ceLEsiCUmJiI8ePHc0JDsipZh5u0fBO4XCYRORJnuHNTmTZt2qCgoKDs/4cMGYIVK1Zg4sSJWLlyZbltn3jiCfz++++YM2cOTp48iXHjxtm7XFI4WT8K7qwnESJyXErvA7x58yZGjRqFp556Cu3bt4eXlxcOHTqEGTNmYOjQoeW2HTZsGJYtW4axY8fCxcUFI0eOBAD4+vpi+PDheO2119CvXz80bNhQii+FFEzW4SZN4ScRIpKfS/mmGq8OLkc6nQ6dO3fGJ598gtTUVBiNRoSHhyM+Ph6vv/56he1HjhwJi8WCsWPHQqVSYfjw4QCACRMmYMWKFWwkJpsQRFGU7cjOlAM3MO1QptRlEBGVc3lcUzTwrPra0WAw4MKFC2jSpAm0Wq0dK3Mcy5Ytw0svvYQrV66UrfZMdDe1+bmRdc/N1UI2ExOR40kv4F3lqhQWFiI1NRUffvghnn76aQYbsglZh5ucYoYbInI8uVzMt0ozZsxAq1atEBISgsmTJ0tdDimUvMNNCU8gROR4cop5bqrK1KlTYTQasW3bNuh0OqnLIYWSdbjJZbghIgeUU8K7ykRSkne44a1fInJAvPAikpa8ww1PIETkgDhkTiQtWYebQhNPIETkeIpMsp1hg0gRZB1uDDyBEJEDMph5biKSkrzDDU8gROSADGbeVSaSkmzDjckigtmGiBwR7yrLkyAISE5OrvLjFy9ehCAISElJsWkdhYWFGDFiBLy9vSEIArKzs216PHuZOnUq7rnnnrtuExcXh0ceeaTex5Lt2lK8a0NEjqq4Huenwoz7rVhJ9TyC99Vq++vXr2PKlCnYsGEDMjIy4Ovriw4dOmDKlCno1q2bjaq0j/T0dPj6+kpdBpYsWYJdu3Zh7969CAgIgI+Pj9QlWcWrr76K559/3i7Hkm24MVkYbojIMRkVfH4aMWIESkpKsGTJEjRt2hQZGRnYtm0bbt68KXVp9RYSEiJ1CQCA1NRUtG7dGm3btrXrcc1mMwRBgEplm0EdnU5nt4kbZTsspVEpc8VdksaiLvvQ2ZeLsJJ1uKmVeX7Kzs7Grl27MH36dPTq1QsRERHo1KkTJk+ejCFDhgCofOgmOzsbgiBgx44dAIAdO3ZAEARs27YNHTt2hIeHB7p27YozZ86UfU7pEMayZcvQuHFj+Pj4YPTo0cjLywMALF26FP7+/iguLi5X4yOPPIKxY8dWWn9JSQmee+45hIaGQqvVIiIiAh988EHZx+8cljpw4ACio6Oh1WrRsWNHHDlypMI+f/31VwwcOBA6nQ7BwcEYO3Ysbty4cdfv47fffouoqCi4ubmhcePGmDlzZtnHevbsiZkzZ2Lnzp0QBAE9e/asdB+l35/58+cjPDwcHh4eiI2NRU5ODgBg586dcHV1xdWrV8t93osvvogHH3wQAJCUlAS9Xo9169ahTZs2cHNzQ1paGg4ePIi+ffuW3TXq0aMHfvnll3L7EQQB8+fPx+DBg+Hh4YHWrVvj559/xvnz59GzZ094enqia9euSE1NrVBzKbPZjJdffhl6vR7+/v745z//CWut5S3bcKN1UebJg+zvrQ4nMbrBPCxo/S2C3QxSl0MKoHWR7an1rkqvvJOTkyuEirp44403MHPmTBw6dAguLi546qmnyn08NTUVycnJ+OGHH/DDDz/gp59+wocffggAGDVqFMxmM9atW1e2/bVr17Bhw4YK+yk1Z84crFu3DqtXr8aZM2fw9ddfo3HjxpVum5+fj8GDB6NNmzY4fPgwpk6dildffbXcNtnZ2ejduzeio6Nx6NAhbN68GRkZGYiNja3yaz58+DBiY2MxevRoHD9+HFOnTkVCQgKSkpIAAN999x3i4+PRpUsXpKen47vvvqtyX+fPn8fq1auxfv16bN68GUeOHMEzzzwDAOjevTuaNm2KZcuWlW1vNBrx9ddfl/v+FBYWYvr06fjqq69w4sQJBAUFIS8vD+PGjcPu3buxb98+REZGYtCgQWXBstS0adPw5JNPIiUlBa1atcKYMWPw9NNPY/LkyTh06BBEUcRzzz1XZf0zZ85EUlISFi9ejN27dyMzMxPff/99ldvXhmyHpVSCAI1KQImCb/+S7Q1rlI7Xms8BYEGwzzWsajEPfX+dBKOozF9OZB9ahd65cXFxQVJSEuLj4zFv3jzExMSgR48eGD16NNq3b1/r/b333nvo0aMHAODf//43HnroIRgMBmi1WgCAxWJBUlISvLy8AABjx47Ftm3b8N5778Hd3R1jxoxBYmIiRo0aBQBYvnw5GjVqVOXdjrS0NERGRuKBBx6AIAiIiIiosrYVK1bAYrFg0aJF0Gq1iIqKwqVLl/CPf/yjbJu5c+ciOjoa77//ftlrixcvRnh4OM6ePYsWLVpU2O+sWbPQp08fJCQkAABatGiBkydP4qOPPkJcXBz8/Pzg4eEBjUZT7TCZwWDA0qVLERYWBgD47LPP8NBDD2HmzJkICQnBhAkTkJiYiNdeew0AsH79ehgMhnLhy2g04osvvkCHDh3KXuvdu3e54yxYsAB6vR4//fQTBg8eXPb6+PHjy/b1r3/9C126dEFCQgL69+8PAHjhhRcwfvz4KuufPXs2Jk+ejOHDhwMA5s2bhy1bttz1a64pWZ/BefeG6iPKJx9LOs2CgEIAgM79DDxNF7Eyaq3ElZHcuSv43DRixAhcuXIF69atw4ABA7Bjxw7ExMSU3XmojdsDUWhoKIBbd19KNW7cuCzYlG5z+8fj4+OxdetWXL58GcCtYZa4uDgIQuXf/7i4OKSkpKBly5aYNGkStm7dWmVtp06dQvv27cuCFgB06dKl3DZHjx7F9u3by+5o6XQ6tGrVCgDKDcfcud87G6+7deuGc+fOwWyu3ZpkjRo1Kgs2pfVZLJay4b24uDicP38e+/bdahpPSkpCbGwsPD09yz5Ho9FUCKYZGRmIj49HZGQkfHx84O3tjfz8fKSlpZXb7vbPCw4OBgC0a9eu3GsGgwG5ubkVas/JyUF6ejo6d+5c9pqLiws6duxYq+9BVWQdbtwVenVEtufjasT2PnOhFjPKXhMEICA4HMEFyZjZYo+E1ZHcKfXOTSmtVou+ffsiISEBe/fuRVxcHN566y0AKGtGvb13wmg0VrofV1fXsv8uDSQWi6XSj5duc/vHo6Oj0aFDByxduhSHDx/GiRMnEBcXV2XdMTExuHDhAqZNm4aioiLExsZi5MiRNfyqK8rPz8fDDz+MlJSUcn/OnTuH7t2713m/1hIUFISHH34YiYmJyMjIwKZNmyoM2bm7u1cIg+PGjUNKSgo+/fRT7N27FykpKfD390dJSUm57Sp7/6p7T+1F1uGGd26orvYPWA5P4WSF1331v0MQ1LjfNA//F35OgspICbRqWZ9aa61NmzYoKCgAAAQGBgK49Vh1KVvOCzNx4kQkJSUhMTERf/vb3xAeHn7X7b29vfHoo49i4cKFWLVqFb799ltkZlZ8mKB169Y4duwYDIa/+vBK74CUiomJwYkTJ9C4cWM0b9683J/b747cud89e8pfPO3ZswctWrSAWq2u6ZcN4NYw25UrV8rVp1Kp0LJly7LXJk6ciFWrVmHBggVo1qxZjR7X37NnDyZNmoRBgwaVNT5X1yRdWz4+PggNDcX+/fvLXjOZTDh8+LBV9i/rn0B3JzuBkHVs6r0F4ZrtlX7MVZ0NvX9riKIZcdqP0d3vWqXbEd2NUoelbt68id69e2P58uU4duwYLly4gDVr1mDGjBkYOnQogFt3Au6//358+OGHOHXqFH766Se8+eabNqtpzJgxuHTpEhYuXFhlI3GpWbNm4ZtvvsHp06dx9uxZrFmzBiEhIdDr9ZXuVxAExMfH4+TJk9i4cSM+/vjjcts8++yzyMzMxGOPPYaDBw8iNTUVW7Zswfjx46scYnrllVewbds2TJs2DWfPnsWSJUswd+7cCs3KNaHVajFu3DgcPXoUu3btwqRJkxAbG1uuV6d///7w9vbGu+++e9f+l9tFRkZi2bJlOHXqFPbv34/HH38c7u7uta6vOi+88AI+/PBDJCcn4/Tp03jmmWesNmGhrNMB79xQbc2IOYbuvivuuo1/wK3b6RZTHqYHz0QjbaE9SiMFUeqwlE6nQ+fOnfHJJ5+ge/fuaNu2LRISEhAfH4+5c+eWbbd48WKYTCbce++9ePHFF/Huu+/arCYfHx+MGDECOp2u2pltvby8MGPGDHTs2BH33XcfLl68iI0bN1Y6r4tOp8P69etx/PhxREdH44033sD06dPLbdOgQQPs2bMHZrMZ/fr1Q7t27fDiiy9Cr9dXOVdMTEwMVq9ejZUrV6Jt27aYMmUK3nnnnbsOp1WlefPmGD58OAYNGoR+/fqhffv2+OKLL8pto1KpEBcXB7PZjCeffLJG+120aBGysrIQExODsWPHYtKkSQgKCqp1fdV55ZVXMHbsWIwbNw5dunSBl5cXhg0bZpV9C6K1HiqXQJdv07Avg4/uUs083uQSFsS8DeDuj7CKInDqlB+KDbfu2lg8o9Hv5EswWGT7cCHZWWLvYMS1qnpWWYPBgAsXLqBJkyblGlapbvr06YOoqCjMmTNH6lLsZurUqUhOTq7RkN+ECRNw/fr1co/Ny1Ftfm5kfedGqbd+yfpi/HIx795ZqC7YAH81FpdSFRzBmqiVNqyOlIZD5vaRlZWF77//Hjt27MCzzz4rdTkOJycnB7t378aKFSvstuyBo5D1paiHQifKIuvydyvBj73mQCXWvCHOV/87rqSpIYq3xs198zfi81ZhePZ0L1uVSQrCCy/7iI6ORlZWFqZPn16uiZZuGTp0KA4cOIC///3v6Nu3r9Tl2JWsh6We+t9VJJ6u+Pw8USkBIs4PXYgQl921/tyLf7RC1vVfb3tFhdWWNzDn99bWK5AUaf+IcHQKrroBk8NSRLXnNMNSDXWyvvFEdvC/vhvqFGwAwN//zrkZLBjtOgv9Aq5Wuj1RqYY61+o3IiKbkXe48WS4oarN7XQYnbxX1/nzde5n4eYeXO41i7kAbwd8hGYeBfUtjxTKRQWEeNRuvhIisi5Zh5twXh1RFeIjL2J8+Jf12ocgAAFBDSu8bi5Ox5Kmn0KnNtVr/6RMoR4uUFUx/T8R2Yesww2HpagyXQOz8EmHWQBKqt22OqUzFldQ8CvWtlla7/2T8vCOMpH05B1ueBKhO4Roi7Gh+2wIYrZV9ueqzoY+oPIGYl3+f/FV66oX3iPnxIsuIunJOtz4atXw5COX9Ce1YMH+AV9BgwtW3W9Ahcbiv7QyLME/mxyz6vFI3hhuiKQn63ADAGE8kdCfdvf/DwLU+6vfsJY8K2ks/ouIR1SzMST4stWPS/LU0JO9gIIgIDk52er7jYuLq3aJhfqoru6LFy9CEASbLgQKAIWFhRgxYgS8vb0hCILV1luS2tSpU3HPPffcdRtrvceyTwYNPV1wNtsodRkksUVd96O95/c22fetxuJwXP49o9KPWywGTNbPQGrhOziRV/WU++Qc6nvnZs+mjlaqpGa6DTxUq+2vX7+OKVOmYMOGDcjIyICvry86dOiAKVOm1GjFaUeWnp4OX19fqcvAkiVLsGvXLuzduxcBAQHw8VHGeeXVV1+120zJ8g83OlcARVKXQRKa1DoVo0Pn2/QYvvqLuJLmAlGs/Akpc8l1LGj0KQadnYwcI6/cnZnSewFHjBiBkpISLFmyBE2bNkVGRga2bduGmzdvSl1avd2+mraUUlNT0bp1a7Rt29auxzWbzRAEocpFP+tLp9NBp9PZZN93kv2wVDiHpZxan5AbeD9qFgDbPpZ9t8biUmLhaaxttRgCZDvpN1mBks9J2dnZ2LVrF6ZPn45evXohIiICnTp1wuTJkzFkyJBy2964cQPDhg2Dh4cHIiMjyy3aaDabMWHCBDRp0gTu7u5o2bIlPv3003Kfbzab8fLLL0Ov18Pf3x///Oc/cfuE+kuXLoW/vz+Ki8uvF/fII49g7NixldZfUlKC5557DqGhodBqtYiIiMAHH3xQ9vE7h6UOHDiA6OhoaLVadOzYEUeOHKmwz19//RUDBw6ETqdDcHAwxo4dixs37r7Uy7fffouoqCi4ubmhcePGmDlzZtnHevbsiZkzZ2Lnzp0QBAE9e/asdB+lQzzz589HeHg4PDw8EBsbi5ycHADAzp074erqiqtXy086+uKLL+LBBx8EACQlJUGv12PdunVo06YN3NzckJaWhoMHD6Jv375ld4169OiBX375pdx+BEHA/PnzMXjwYHh4eKB169b4+eefcf78efTs2ROenp7o2rUrUlNTK9Rcqrr3uD5kH25a6jVSl0ASaeRZhG8f+ASCmGeX4wX4m6vdxj3/JyyN2mCHasgR6VwFRTcUl155JycnVwgVd3r77bcRGxuLY8eOYdCgQXj88ceRmZkJALBYLGjYsCHWrFmDkydPYsqUKXj99dexevVfk27OnDkTSUlJWLx4MXbv3o3MzEx8//1fQ8+jRo2C2WwuF5quXbuGDRs24Kmnnqq0pjlz5mDdunVYvXo1zpw5g6+//hqNGzeudNv8/HwMHjwYbdq0weHDhzF16lS8+uqr5bbJzs5G7969ER0djUOHDmHz5s3IyMhAbGxsld+Xw4cPIzY2FqNHj8bx48cxdepUJCQkICkpCQDw3XffIT4+Hl26dEF6ejq+++67Kvd1/vx5rF69GuvXr8fmzZtx5MgRPPPMMwCA7t27o2nTpli2bFnZ9kajEV9//XW5709hYSGmT5+Or776CidOnEBQUBDy8vIwbtw47N69G/v27UNkZCQGDRqEvLzy59pp06bhySefREpKClq1aoUxY8bg6aefxuTJk3Ho0CGIoojnnnuuyvqre4/rQ/Y/hfcEuEldAknATW3Gz/3mw1X8w27HvNVYHILiorsvv9CkcAXeahaKt1PvtVNl5Cja+7tBUPAEfi4uLkhKSkJ8fDzmzZuHmJgY9OjRA6NHj0b79u3LbRsXF4fHHnsMAPD+++9jzpw5OHDgAAYMGABXV1e8/fbbZds2adIEP//8M1avXl0WDGbPno3Jkydj+PDhAIB58+Zhy5YtZZ/j7u6OMWPGIDExEaNGjQIALF++HI0aNarybkdaWhoiIyPxwAMPQBAEREREVPm1rlixAhaLBYsWLYJWq0VUVBQuXbqEf/zjH2XbzJ07F9HR0Xj//ffLXlu8eDHCw8Nx9uxZtGjRosJ+Z82ahT59+iAhIQEA0KJFC5w8eRIfffQR4uLi4OfnBw8PD2g0mmqHyQwGA5YuXYqwsDAAwGeffYaHHnoIM2fOREhICCZMmIDExES89tprAID169fDYDCUC19GoxFffPEFOnToUPZa7969yx1nwYIF0Ov1+OmnnzB48OCy18ePH1+2r3/961/o0qULEhIS0L9/fwDACy+8gPHjx1dZf3XvcX3I/s5Na18N3NTKPZlQ5X7uvxZ61S/Vb2hFtxqLw2q0bT/MRWzo7zauiByNM1xsjRgxAleuXMG6deswYMAA7NixAzExMWV3HkrdHnY8PT3h7e2Na9eulb32+eef495770VgYCB0Oh0WLFiAtLQ0AEBOTg7S09PRuXPnsu1dXFzQsWP5Zuv4+Hhs3boVly/feloxKSkJcXFxVQbMuLg4pKSkoGXLlpg0aRK2bq16nqpTp06hffv25RZo7NKlS7ltjh49iu3bt5fd0dLpdGjVqhUAlBuOuXO/dzZed+vWDefOnYPZXP3d4ds1atSoLNiU1mexWHDmzJmyr/f8+fPYt28fgFvfn9jYWHh6epZ9jkajqRBMMzIyEB8fj8jISPj4+MDb2xv5+fll70+p2z8vOPjWE6Xt2rUr95rBYEBubsUFrmv6HteV7MONi0pAlB+HppzJygd3oaW7NEM/t2Ysrv6Gp2gpxkteHyHaO9v2RZHDcIZwAwBarRZ9+/ZFQkIC9u7di7i4OLz11lvltnF1Ld9YLwgCLJZbc0atXLkSr776KiZMmICtW7ciJSUF48ePR0lJ7WYVj46ORocOHbB06VIcPnwYJ06cQFxcXJXbx8TE4MKFC5g2bRqKiooQGxuLkSNH1uqYt8vPz8fDDz+MlJSUcn/OnTuH7t2713m/1hIUFISHH34YiYmJyMjIwKZNmyoM2bm7u1cIg+PGjUNKSgo+/fRT7N27FykpKfD396/w/tz+Hpfuo7LXSt93e5J9uAGAe/yd44RCwL/bnsHDQYslO35NGotLmY2Z+LzhLARo7t6bQMpxj7+2+o0UqE2bNigoqPlisnv27EHXrl3xzDPPIDo6Gs2bNy93p8PHxwehoaHYv/+veatMJhMOHz5cYV8TJ05EUlISEhMT8be//Q3h4eF3Pba3tzceffRRLFy4EKtWrcK3335b1gt0u9atW+PYsWMwGAxlr5XeASkVExODEydOoHHjxmjevHm5P7ffHblzv3v27Knw/WjRogXU6totuJqWloYrV66Uq0+lUqFly5Zlr02cOBGrVq3CggUL0KxZsxo9rr9nzx5MmjQJgwYNKmt8rq5JurZq8x7XhTLCjZNcLTm7h8Ku4c2WswHU7tattdWksbiUpeg8VrdcCLVg/ysXsi+1ALTzV/Zd5Js3b6J3795Yvnw5jh07hgsXLmDNmjWYMWMGhg4dWuP9REZG4tChQ9iyZQvOnj2LhIQEHDx4sNw2L7zwAj788EMkJyfj9OnTeOaZZyqdzG7MmDG4dOkSFi5cWGUjcalZs2bhm2++wenTp3H27FmsWbMGISEh0Ov1le5XEATEx8fj5MmT2LhxIz7++ONy2zz77LPIzMzEY489hoMHDyI1NRVbtmzB+PHjqxxieuWVV7Bt2zZMmzYNZ8+exZIlSzB37twKzco1odVqMW7cOBw9ehS7du3CpEmTEBsbW65Xp3///vD29sa777571/6X20VGRmLZsmU4deoU9u/fj8cffxzu7u61rq86NX2P64LhhmQh0qsQK7rMgoCaXx3aSmljcU1p8vfimzbJtiuIHEILvQZaF0WcUquk0+nQuXNnfPLJJ+jevTvatm2LhIQExMfHY+7cuTXez9NPP43hw4fj0UcfRefOnXHz5s2yp3xKvfLKKxg7dizGjRuHLl26wMvLC8OGDauwLx8fH4wYMQI6na7amW29vLwwY8YMdOzYEffddx8uXryIjRs3Vjqvi06nw/r163H8+HFER0fjjTfewPTp08tt06BBA+zZswdmsxn9+vVDu3bt8OKLL0Kv11c5V0xMTAxWr16NlStXom3btpgyZQreeeeduw6nVaV58+YYPnw4Bg0ahH79+qF9+/b44osvym2jUqkQFxcHs9mMJ598skb7XbRoEbKyshATE4OxY8di0qRJCAoKqnV91anpe1wXgmith8ollFtihv6rVM4uolCeajN+GzoLOuG41KWUuX6zAy79Xrvbp7tcJmHyufttVBFJ7bFIL6zoG1qjbQ0GAy5cuIAmTZqUa1iluunTpw+ioqIwZ84cqUuxm6lTpyI5OblGS0FMmDAB169fL/fYvBzV5udGEZcZ3ho1mnhzVlilOjBwhUMFGwDQ17Cx+HbdzV9gXFjlT1CQ/PEOsv1lZWXh+++/x44dO/Dss89KXY7DycnJwe7du7FixQq7LXvgKBQRbgCeWJTqPz23obHbj1KXUYGrOhu+NWwsLiWKJvzd82N00ct/mnqqiA822F90dDTi4uIwffr0ck20dMvQoUPRr18//P3vf0ffvn2lLseuFDEsBQDvHrqJhAP8paEk0+75FS83+whw0AHH/MJInDt9qtafp9I2xojfpiC9mMMRSpIR1xRBHjW7m8dhKaLac7phKQC4P5gnCCUZFZGOl5p9BkcNNgDg6X6uVo3FpSyGi/gm8ku48gkqxWjm7VrjYENEtqeYcNMt1B0aFWcqVoK2+jwsum8mBAdf7V0QgMAazlh8J5eCg1gdtcbKFZFUeoXV7TFZhdw4J7KL2vy8KCbcuLuo0Jl3b2TPx9WI7X0+g1q8Vv3GDqAujcWlAgv+g9ktd1m5IpJCrzCPWm1fOotrYWGhLcohUqTSGZJrMtmhou6j9gpzx650x77ap6oJEHFw4DJ44LTUpdRYaWNx5vW6Pc3V0bgAT4cHY/4fFRfYI/mobbhRq9XQ6/Vlay15eHgoesFNovqyWCy4fv06PDw84OJSfXRRWLjxwDuHKk6jTfKwpc9mhLnukLqMWvP3NyHzeh0/WTRjnPZjnPF7DzsyA61aF9lHS70rQj1rfyotnUX29sUkiahqKpUKjRo1qtGFgKLCTZcQLdxdBBSZOI4tNx93PIpu+pVSl1EnpY3FxUVX6/T5FlM+PgiegceKpuJiUeXr0ZDj6l3LuzalBEFAaGgogoKCYDQarVwVkfJoNJoqZ36+k6LCjZtahR4N3LE5jePYcvJk00v4R4RjPxl1N6WNxZd+r1u4AQCz4TKWNfscfU++DINFUT+Wite/Uf0CqVqtrvWCiUR0d4ppKC41sJ4nGrKv+wJy8HnMTAAlUpdSL/VpLC4lFKRgbdQKK1VE9uCqAvo0rNudGyKyHcWFmwEMN7IR6FaMzT0+hUqU/+SLdZmxuDL6/M34stU2K1RE9tAtxB06V8WdRolkT3E/lS30GjTlOlMOTy1YcGBAIrQ4L3UpVuMfYLLKftoVJ+LFxiessi+yLV5METkmxYUbABjQiLeJHd32vj8gyGWv1GVYlae2bjMWV2RBrMsnGBh4xQr7IltiuCFyTIoMN8ObekldAt3FF50P4V6vtVKXYXWCAAQG123G4jtZzIWY4v8xWnjmWWV/ZH3NfVzRgQv2EjkkRYabXmHuCPXg0weO6O8tLmJcwy+lLsNm9D4X691YXMpcfBWLG8+Bl5qPCTuixyJ5EUXkqBQZblSCgEeb88TjaLoHZ+Lj9rMAKPeXtas6xyqNxWUKT2Btm6XW2x9ZzZhIb6lLIKIqKDLcADzxOJowDwP+88BsCGK21KXYnLUai0t55m/D4jabrbpPqp/oADe08tVIXQYRVUGx4ea+YC0iffjUlCNwFSzY138hNLgodSl2Yb3G4r+0KFqGyU1TrLpPqrsxHJIicmiKDTcAx8Qdxe4B38NPdVDqMuzGmo3FfxExWPgUw4L/sPJ+qbZUAs8tRI5O0eGGQ1PSW9JtL9p6/EfqMuzOmo3FpURLMf6p/xhtvXKtul+qne6h7gjT8a4wkSNTdLhp6atBTCAf1ZTKK23OY2TIQqnLkITVG4v/ZC65jvmNZsHXVd7LVcjZmBa8a0Pk6BQdbgCOjUulX4PreLvNJwDMUpciGWs3FpcSC89iTavFEGS60KicaVQCRnIeLSKHp/hwM7q5F1SC1FU4l6a6QqzpOguC6NwT0Hlqz0HrHmqTfWvzd2J51Hqb7JuqNqCRB3y1nEOLyNEpPtyE6VzRK4zLMdiLu9qE3X3nwUW8LHUpkhMEICC4gc32H1G4Eu80d55GbUfwRAv28RHJgeLDDQA8304vdQlO4+cBa+CjSpG6DIeh974IQbBd82kf8XOMaXDBZvunv4TrXDCsqU7qMoioBpwi3Dzc2BPNuFK4za3p/hMitZukLsOhuLrkwDfQ+o3FpURLCZ7XfYx7fbJsdgy65dm2erhwjJtIFpwi3KgEAZPa66UuQ9HebH8agwITpS7DIfn723a5CbMxC5+FzUSQptimx3Fmni4C/q+Nj9RlEFENOUW4AYCnWvvAR+M0X65dDQnPwL8jZwOwSF2KQ7JlY3EpS9FvWNVyPtQC3wNbGNfKm43ERDLiNL/tda4qTGjNKy9ra+lTgOWdZ0FAodSlOCxbNxaXcs3fh1VR39v8OM5GAPBCe1+pyyCiWnCacAMAk9rroeaQudV4uZqws89cqMV0qUtxeLZuLC4VUvAtZrT42ebHcSaDIjzRQs9FMonkxKnCTYSXK592sKIDA76GTjghdRmycKuxuJVdjtXN9CWeanjeLsdyBi914F0bIrlxqnADAC/y9rJV/NDrv2ik2SZ1GbLi72+bGYvvJIomxLt/jAd8b9jleErWzk+DPg05TxaR3DhduOkW6o77grjeVH18EH0cvfyWSV2G7Hhqz0HrYdvG4lJmUy4+CvkYYdoiuxxPqV7kXRsiWXK6cAPwNnN9jG5yGZOafgZwXaNaEwQgIMj2jcWlzIY0rGj+BdxUzru+V30EuavxOBfJJJIlpww3sc280NqXDYK1dY9fLhbeOwuAQepSZMtejcWl1AWHsbrNKrsdT0n+Fe0HN7VTniKJZM8pf3LVKgHvdfaXugxZ8dUY8d9en0ElXpe6FFmz9YzFlfEv+AFzWv5k12PKXSOdC55tx6kjiOTKKcMNAAxr6oX7g7VSlyELAkQcHJgEd5yRuhRF8PcrsfsxY4xf4ZlGp+1+XLl6u5M/79oQyZhT//R+eH+A1CXIwn//tgmhLrukLkMxPN3P262xuIxoxhOamejjn2Hf48pQlJ8GT7bk6t9EcubU4aZHmAcGNuJjnncz+74juN9npdRlKIq9G4tLWcwFeDfwIzRxL7D7seXkvc4BUAmc7ZNIzpw63ADAB/cHgqexyo1vnob4Rp9LXYYi2buxuJS5+AqWNvsMHnyCqlJdQ7QY2oQTfRLJndOHmw4Bbngsko973qlzQDbm3DMLgP37Q5yBFI3FpYSCY1gbxXmKKsOhaiJlcPpwAwDTOvnDld+JMkHaYmzqMRsqMVPqUhRNisbiUt75W7Gg9X8lO74jeijCEw824DA1kRLwVzqApj4aPB2ll7oMh6AWLDg4YBHc8JvUpSieJI3Ft2ljSMIrTX6V7PiORCUAH/CuDZFiMNz8KeFeP+hc2X2zs986BKj3SV2GU5CqsfgvFoxQf4KHgq5IWINjGBPphXb+XJaFSCkYbv4U5OGCqfc598R+C+4/gHt030ldhlORqrG4lMVchDf9PkIrXZ5kNUjNW6PC9C6BUpdBRFbEcHObF9r7ooOTXr092+o3PB42T+oynI6UjcWlzMUZWBQxG15qo6R1SOXdTv5o4OkidRlEZEUMN7dxUQmY3zMIKicbneoRnInpbT8BYJK6FKcUIGFjcSmx8BTWtkmSugy76xjohmfb6aUug4isjOHmDp2D3fF/bZxnTZlGnkX4zwOzIIg5UpfitDw9pG0sLqsjfzuWtNkodRl2oxaA+T2DOWEfkQIx3FTig/sDEOKhlroMm3NTm7G33wK4Ik3qUpyetI3Ff2lW9DXebJoidRl28WxbPWICub4ckRIx3FRC76bGF92DpC7D5vb0+w6+qsNSl0EAfH0uSNpY/BcRA4VPMTLkD6kLsanGXi54n49+EykWw00VhjX1wqhmyp2GffkDu9HaY73UZdCfXNS58JO4sbiUaCnGKz4z0N5LuUOVC3sGw5MzdxIpFn+672Lug0Hw1yrvW/Ra1FkMC14kdRl0BylnLL6TueQm5jWaBT/XYqlLsboJrb3xt3BPqcsgIhtS3m9uKwrycMGnDyhreGpg2HW81Wo2AC6c6GhuNRY7Ru8NAFgKz2FNq0UQIEpditWEebpgZlfOaUOkdAw31Xi8hTeGKWSV4GZeBVjZZRYE5EtdClUhIEj6p6Zu55a/Gyui1kldhlUIuDUc5eOm/IcFiJwdw00NLO4djMZe8p7ky11twp6+X8JFvCx1KXQXvj4XIKg0UpdRTnjhKrzb/KDUZdTba9G+GBjB4SgiZ8BwUwN6NzVW9QuV9crhBwaugpdwTOoyqBou6lz4BbSSuowKelnm4vEGF6Quo866hWjxXmc+HUXkLGT869q+OgW7Y4ZM15/5rsd2NHXbInUZVEP+/o7TWFxKFI14TvcROukzpS6l1vy1KqzsFwoXZ5t6nMiJMdzUwosdfPFIE3nd1n6rw0n0D1gidRlUC57ujtVYXMpszMbsBh8j2M0gdSk1JgBY2icEDXWOMIcQEdkLw00tJfYOkU3/zYhG6Xit+RwAFqlLoVoKdLDG4lKWootY1WIeXAV5/Jt6LdoXgyKU8UAAEdUcw00tyaX/JsonH4mdZkFAodSlUB3ofX5zuMbiUi75B7Ayaq3UZVSLfTZEzsvBf0U7Jkfvv/FxNWJ7n7lQixlSl0J15KLOc8jG4lLBBcmY2WKP1GVUiX02RM6N4aaOHLn/Zv+A5fAUTkpdBtWTv79jzw58v2keJoafk7qMCthnQ0QMN/WQ2DsELfWOdQLd1GcLwjXbpS6DrMDTPdUhG4tLiaIZT2ln4kG/61KXUs6bHf3YZ0Pk5Bhu6kHvpsbGh8IQ5O4YM57OiDmG7voVUpdBVuSojcWlLKZczAj+GI20jtHb9UQLL7zTiX02RM6O4aaemvpo8MOgMHi4SDu2/3iTS3i2yWeAgtYBIsduLC5lNvyB5c0/h1ZlkrSO3mHuWNwrRNIaiMgxMNxYwX3BWqzsFwq1RPkmxi8X8+6dBcCxezSo9hy9sbiUquAIVketkuz4bf00+G5AA7hK9UNIRA6F4cZKHm6sw5wH7b+CuL9bCX7sNQcq8Ybdj0324eiNxaX88jdgbqsddj9uA89bw8NcEJOISjHcWNEzbfV47R5fux1PgIiDAxKhxVm7HZPsz9Ebi293T/FXeL7RKbsdz8tVhY0PNUS4l2M19hORtBhurGx6lwCMbu5ll2Nt77sBwS6OO9cIWU9gsGM3Fv/Fgsc0s9Av4KrNj+SiAtb2D0WHADebH4uI5IXhxsoEQUBSn2B0b+Bu0+PM7XQY93mvtukxyHHovR2/sbiUxVyAtwM+QjOPApseZ0GPYPRr5JhzTRGRtBhubMBNrULygAZo7WubX0bxkRcxPvxLm+ybHNOtxuLWUpdRY+bidCxpOgc6tW2eoHqrox/Gt/axyb6JSP4YbmzEV6vGtiEN0Upv3YDTNTALn3SYBaDEqvslx+fvL5/VuAEABcexps0yq+/2X9G+mMq5bIjoLhhubCjU0wU/PdIQbf2sE3BCtMXY0H02BDHbKvsjeZFTY3Epr/wf8VXrrVbbX0JHP3zowOu6EZFjYLixsSAPF2wfGo4O/vVrenQVLDgwYCE0uGClykiO5NNY/JdWhiX4Z5Nj9d7PO538OfswEdUIw40dBLir8b+hDXFvYN0Dzs7+yfBXH7BiVSRHcmos/ouIR1SzMST4cp338MH9AUjo6G/FmohIyRhu7MRPq8Z/hzREpyBtrT93Udf9aO+ZbP2iSHbk1lhcymIxYLJ+Blrrcmv9uTO7BuLfMX42qIqIlIrhxo70bmr8OCQMXUNqHnAmtU7F6ND5NqyK5EZ2jcV/Mpdcx1cRs+Hjaqzx58x5IBAv23FiTCJSBoYbO/PWqLHl4YY1mgenT8gNvB81C4C0CxKSY/F0T4W7Z5jUZdSJWHgaa1sthlDNAq8CgC+7B+H59gw2RFR7DDcS0LmqsOmhMPRp6FHlNo11Rfj2gU8giHl2rIzkIiAoWOoS6sw9/ycsjdpQ5cfVArCwZzD+3lZvv6KISFEYbiTi4arCxofC8GRL7wofc1ObsafvfLiKf0hQGcmB3vuCDBuL/9KkcAXeana4wuueLgKSBzbAhDacoI+I6o7hRkIatYAlfUIw9b7yT4Hs678GetUvElVFcnCrsbiV1GXUSz/MRWzo72X/38BTjZ3DwjG4sU7CqohICRhuHMBb9/ljWZ8QaFQCVj64Cy3cN0pdEsmAv7+8Z6kWLcV4yesjRHtno72/BvtHNEJMYO2fJiQiupMgiuLdO/vIblKuZaIFngDETKlLIZk4fSYYRQV1nz/GEbiHPorINq/AS8NrLSKyDp5NHMg9QX7Q+n8FwaWZ1KWQTAQEhUhdQr2ENXkS0R0YbIjIunjnxgGJlkKU5L4Nc/FPUpdCDs5k1uHX44UQLfIaolKp3NC8XQICGwyQuhQiUiBeLjkgQeUBjc+HcPGcAL5FdDcu6nzZzViscQtC2/sXMtgQkc3wN6eDEgQBGl083HznQFBxsUCqmpxmLNYHdEWHbsvg5dNG6lKISME4LCUDoiULxTnTYCnZK3Up5KAcvbFYpXJDRMvnERrxKARBkLocIlI4hhuZEEURpsKVMOZ/AaDma/OQc7iR1QF/XKg4KZ4j8NA1Q4t73oOnV3OpSyEiJ8FwIzMW42kU5yRANHP2YvqLyazDieOFsDhUY7GA0IhH0bjl81Cp3aQuhoicCMONDImWQpTkfQSzYZPUpZADSbvUBjevHZO6DACAq8Yfke3fgm9gV6lLISInxHAjY6aiTSjJ+wQQc6UuhRxAQVEznD11Ruoy4Bv4ICLbTYGrG1f0JiJpMNzInGjJREnebJgNW6UuhRyAlI3FKpUbGrd6EaERoyQ5PhFRKYYbhTAX70NJ3gyI5itSl0ISkqqxWB9wP5q2+TfcPRva/dhERHdiuFEQUTTAmP8VTIXfADBLXQ5JwN6Nxa5uAWjS+mUEhvazy/GIiGqC4UaBLMZzKMn9ABbTSalLIQmkXY7CzYyjNj6KCqERo9Ao8h9wcdXZ+FhERLXDcKNQomiBqWgNjPnzAbFQ6nLIjgqKmuLsqbM227+3bzSatH4FOp9WNjsGEVF9MNwonGjJgjF/MUxFyeDkf87j9JkQFBVcsuo+NdpgNG71AoegiMjhMdw4CYvpMowF82E2/AiAb7nSWbOxWKVyQ1jTJxHWdBzUaq1V9klEZEsMN07GYjyNkvzPYSk5KHUpZEPWaCxWqdwQHD4MYU3HwU0baMXqiIhsi+HGSZmL96Mk/3OIJtv1ZpC06tpYrFK5IbjRcDRsMg4aLVekJyL5YbhxYqIowmzYCmNBIkTzRanLISsrNDTDmZM1n7FYpdYiJHwEwpqOhcaNoYaI5IvhhiCKIiwle2As+BoW4xGpyyErqkljsUrtjtBGI9GgyVho3PzsVBkRke0w3FA5ZuMJmAq+hrl4BwCL1OVQPd2tsVil9kBoxCiENX6C60ARkaIw3FClLKZLMBV+A1PRDwCKpS6H6qiyxmI391CEhA9HcPgwuGr00hVHRGQjDDd0V6IlG6bCtTAV/Qei5brU5VAd3GosPgZ9wP0IbTQKvkEPQBBUUpdFRGQzDDdUI6JohqVkP0xFG2Au3gXAPmsXUT2p/GBRjYRa24+LWhKR02C4oVoTLTkwGX6EuegHWEynpS6HKlBDpbkfLu5DoHbrBkFwkbogIiK7YriherGYUmEq+gEmw2bAkiV1OU5MBZVrW6jdekGt7QOVOkjqgoiIJMNwQ1YhiiZYSg7CXLwL5uLdEC3XpC7JCaih0kRD7dYLLm49IKg5Nw0REcBwQzZiMZ6GuXg3TMW7IJpqPpEcVccVKs19cNH2gtqtOwSVj9QFERE5HIYbsjmL+RrMxbthLt4NS8lh8NHy2hHU4VBpYqDWdIRa0wWCSid1SUREDo3hhuxKFA2wGH+FpeQYzMZjsBiPA2KB1GU5FEHd8FaYcb0XKk0MVGouWklEVBsMNyQpUbRANKX+GXSOwVJyDKIlXeqy7EgNQR0BlaYt1K4xf4YZNgMTEdUHww05HIv5OizG47CYUiGaUmEx/QbRfBmAWerS6kflC5VL89v+REJwaQxB0EhdGRGRojDckCyIYjFE0++wmH+HaPoDFvMfEM1psJguAWIuAAf5Zyx4Q1AHQ1AFQaUOujXE9GeYEdT+UldHROQUGG5I9kTRBNGSCVgyIZb7cxOi+c//FrMB0XjrD0wQxRIARkA0ATCh4iKhboDgAUHQAoJ72d8QtBAEDwgqHQRVEAR1UFmYEdRBt7YjIiJJMdwQ4VZAuhVyRABuXHuJiEjGGG6IiIhIUXh5SkRERIrCcENERESKwnBDREREisJwQ0RERIrCcENERESKwnBDREREisJwQ0RERIrCcENERESKwnBDREREisJwQ0RERIrCcENERESKwnBDREREisJwQ0RERIrCcENERESKwnBDREREisJwQ0RERIrCcENERESKwnBDREREisJwQ0RERIrCcENERESKwnBDREREisJwQ0RERIrCcENERESKwnBDREREisJwQ0RERIrCcENERESKwnBDREREisJwQ0RERIrCcENERESKwnBDREREisJwQ0RERIrCcENERESKwnBDREREisJwQ0RERIrCcENERESKwnBDREREisJwQ0RERIrCcENERESKwnBDREREisJwQ0RERIrCcENERESKwnBDREREisJwQ0RERIrCcENERESKwnBDREREivL/Zv/IVaJ8RHgAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data = {\n", - " \"Sky\": 0.77,\n", - " \"Sunny side of pyramid\": 0.17,\n", - " \"Shady side of pyramid\": 0.05\n", - "}\n", - "\n", - "colors = [\"#0095d9\", \"#f5e837\", \"#c4b633\"]\n", - "\n", - "plt.pie(data.values(), startangle=-50, colors=colors)\n", - "plt.legend(data.keys(), bbox_to_anchor=(1, 0, 0.5, 0.6))\n", - "plt.savefig(\"meme.png\", bbox_inches=\"tight\", transparent=True)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Material/wise_24_25/lernmaterial/numpy.ipynb b/Material/wise_24_25/lernmaterial/numpy.ipynb deleted file mode 100644 index 8236e12..0000000 --- a/Material/wise_24_25/lernmaterial/numpy.ipynb +++ /dev/null @@ -1,1392 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "a3bf87b4-95cf-4ba0-9a5b-0850aeaa69a9", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "2232b758-63e1-41d2-9408-179a53a85aa2", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-807eca211e1487aa", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "# 4. Programmierübung: NumPy\n", - "\n", - "
\n", - "
\n", - " Willkommen zur vierten Programmierübung Einführung in Python 3.\n", - "
\n", - " \n", - "
\n", - "\n", - "Wenn Sie Fragen oder Verbesserungsvorschläge zum Inhalt oder Struktur der Notebooks haben, dann können sie eine E-Mail an Phil Keier ([p.keier@hbk-bs.de](mailto:p.keier@hbk-bs.de?subject=[SigSys]%20Feedback%20Programmierübung&)) oder Martin Le ([martin.le@tu-bs.de](mailto:martin.le@tu-bs.de?subject=[SigSys]%20Feedback%20Programmierübung&)) schreiben.\n", - "\n", - "Link zu einem Python Spickzettel: [hier](https://s3.amazonaws.com/assets.datacamp.com/blog_assets/PythonForDataScience.pdf)\n", - "\n", - "Der Großteil des Python-Tutorials stammt aus der Veranstaltung _Deep Learning Lab_ und von [www.python-kurs.eu](https://www.python-kurs.eu/python3_kurs.php) und wurde für _Signale und Systeme_, sowie _Einführung in die Programmierung für Nicht Informatiker_ angepasst.\n", - "\n", - "---" - ] - }, - { - "cell_type": "markdown", - "id": "789f42fa-8c0c-4c9e-8949-d3899f3e4049", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-1cd501e6cecd8b4f", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "# Was ist NumPy\n", - "\n", - "NumPy steht für *Numerical Python*, ist OpenSource und wird mittlerweile von nahezu jedem Python Entwickeler verwendet. Dabei ist das Core Feature von NumPy seine effiziente Implementierung eines n-dimensionales Arrays in C, welches in Python verwendet werden kann. Hinzu kommt eine Hülle an Funktionen wie effiziente Zufallsalgorithmen und mathematische Funktionen aus den unterschiedlichten Bereichen der Statistik und numerischen Berechnung, welche alle für NumPy Arrays Optimiert sind. Im folgenden wollen wir den Umgang mit NumPy Arrays lernen. \n", - "\n", - "__Für dieses Notebook schauen Sie bitte in die [NumPy Docs](https://numpy.org/doc/stable/reference/index.html)!!!__ Dort sind alle Funktionen beschrieben die wir hier bearbeiten und noch mehr!\n", - "\n", - "---" - ] - }, - { - "cell_type": "markdown", - "id": "0fc6f7d6-3d42-4890-8210-de78a1fb7458", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-4ae0a3d5075b3709", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "Das gesamte Internet importiert NumPy mit dem Kürzel `np`. Um uns diesen ungeschriebenen Gesetz anzuschließen importieren wir in nächster Zelle NumPy als np:" - ] - }, - { - "cell_type": "code", - "execution_count": 92, - "id": "f0d7d531-4c9a-429a-bd65-ad07fa06fdfc", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-50e3611287e2c68f", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [], - "source": [ - "import numpy as np" - ] - }, - { - "cell_type": "markdown", - "id": "c75e273d-8fa1-4618-8107-4820753b548e", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-b910cff04746aa1d", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "# Was ist ein Array?\n", - "\n", - "Ein Array ist eine kontinuierliche Datenstrucktur. Dabei werden die Daten in Reihe im Arbeitsspeicher hinterlegt, vergleichbar mit der Python Liste.\n", - "\n", - "## Erstellen von Arrays\n", - "\n", - "Alle folgenden Beispiele finden Sie im [Beginners Guide](https://numpy.org/doc/stable/user/absolute_beginners.html).\n", - "\n", - "Für unser erstes Beispiel erstellen wir aus einer Python liste ein [NumPy Array](https://numpy.org/doc/stable/reference/arrays.html)." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "f7e32ba5-2ccc-47b0-82a7-a673cce4a5f1", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-1adaa95f01483572", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([1, 2, 3, 4, 5])" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "arr = np.array([1,2,3,4,5])\n", - "arr" - ] - }, - { - "cell_type": "markdown", - "id": "f9ea665d-900f-4e99-bddc-3ed990b0ac27", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-ea5067ebbb1c99bc", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "Der Zugriff auf Elemente des Arrays erfolgt analog zu Pythons Liste:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "7e5103ab-0a56-4a5f-a594-410d50a59e2a", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-cb73ac88e9fa5d93", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "5" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "arr[4]" - ] - }, - { - "cell_type": "markdown", - "id": "ccdab404-1ade-4622-a649-f1b7e594032a", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-ec0a814ecfda8547", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "NumPy Arrays sind n-dimensional, heißt Arrays in NumPy können aus geschachtelten Listen bestehen. Beispiel für ein 2-Dimensionales Array:" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "73b885f6-6fc8-4b45-ad60-d7a97ff3e0b1", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-ff72c8352626ac82", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[1, 2, 3, 4, 5],\n", - " [6, 7, 8, 9, 8],\n", - " [7, 6, 5, 4, 3]])" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "arr = np.array(\n", - " [\n", - " [1,2,3,4,5],\n", - " [6,7,8,9,8],\n", - " [7,6,5,4,3],\n", - " ])\n", - "arr" - ] - }, - { - "cell_type": "markdown", - "id": "2de1bfe6-f584-406a-b9b2-a84bd7119ae1", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-413fcd639649e39a", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "Diese Datenstrucktur wird Allgemein auch Matrix gennant. Der Zugriff auf ein Element einer Matrix folgt nach dem Prinzip \"Spalte->Reihe\". Die erste Spalte ist demnach:" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "f6a5cbff-1164-4a58-9821-d9dc1d22f413", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-c7a59ce293c8e402", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([1, 2, 3, 4, 5])" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "arr[0]" - ] - }, - { - "cell_type": "markdown", - "id": "23357d46-1667-41fa-ae61-45d7919f946d", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-fb0cf79581b45e5e", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "Der zugriff auf ein einzelnes element erfolgt dann analog:" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "329c8ce4-e8e3-4a4f-bfb9-0f14fe14bd1f", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-2f107dba2b747fbb", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "5" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "arr[0][4]" - ] - }, - { - "cell_type": "markdown", - "id": "a8575708-b436-4835-94ce-dcab2a630c59", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-617d777cf3216789", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "Oder mit der NumPys eigener Syntax `arr[, ]`" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "4dcd8136-5189-4bd1-a2f8-94380abe07a7", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-3e1e7323c57088ad", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "5" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "arr[0, 4]" - ] - }, - { - "cell_type": "markdown", - "id": "235987ad-3ba9-4b2b-a516-7f4898f5a046", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-62701cdd045c7c4c", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Platzreservierung\n", - "\n", - "Falls bekannt ist wie viele Elemente ein Array im späteren Programmverlauf haben soll, bietet einem NumPy die möglichkeit diesen Platz im speicher gewissermaßen zu reservieren.\n", - "Hierfür gibt es einige Funktionen.\n", - "\n", - "### Ones\n", - "\n", - "1 Dimensionales NumPy Array der größe 10 mit 1 gefüllt:" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "a9473e4d-7632-4ad2-9dfc-9c1b45bbf4d1", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-d3aeedf2a30a9b30", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.ones(10)" - ] - }, - { - "cell_type": "markdown", - "id": "d88eddf1-8102-4fa6-9e77-870283782f4a", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-6e683d4afe40b7ff", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "### Zeros\n", - "\n", - "Analog dazu mit 0 gefüllt:" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "87464631-34db-4e04-8772-e423dc73c3c6", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-450f40270416767a", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.zeros(10)" - ] - }, - { - "cell_type": "markdown", - "id": "682a6ac2-23d7-48d8-af09-5c5cb571645d", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-ef1e55c1165e2de5", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "### Empty\n", - "\n", - "Analog mit zufälligen Werten (bzw. Werte die bereits an der Speicherstelle waren, meistens 0):" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "e7bae7f4-85f0-4d40-a108-114281052de1", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-896e48c096be9062", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.empty(10)" - ] - }, - { - "cell_type": "markdown", - "id": "dc587f64-5c44-41d8-b7f2-1c77e1833e45", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-947ed3289815694d", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "### Arange\n", - "\n", - "Analog dazu die `arange` Funktion (die Paramter sind die selben wie bei der Python `range` Funktion):" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "87a59679-06ce-45a8-8a0c-1e38b5afa980", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-5329dd48e6129b33", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.arange(10)" - ] - }, - { - "cell_type": "markdown", - "id": "bde3e4d6-27dc-4a15-b09b-1a803f2ede97", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-299417e99c41e05f", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "### Linspace\n", - "\n", - "Um später mit Matplotlib besser arbeiten zu können hat Numpy die [linspace](https://numpy.org/doc/stable/reference/generated/numpy.linspace.html#numpy-linspace) Funktion. Welche die Werte von einem Start und End Punkt Linear berechnet, zusätzlich kann noch die Anzahl der Elemete mit dem `num` Parameter angegeben werden:" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "72a3c4e5-6a34-47c8-a6d9-0ee5f9344a7a", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-036bdec449f35dc5", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 0. , 2.5, 5. , 7.5, 10. ])" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.linspace(0,10, num=5)" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "461fce96-5a91-475e-976b-aa529419ed7d", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-9ac9d3f215fc0237", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - }, - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 400. , 466.66666667, 533.33333333, 600. ,\n", - " 666.66666667, 733.33333333, 800. , 866.66666667,\n", - " 933.33333333, 1000. ])" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.linspace(400, 1000, num=10)" - ] - }, - { - "cell_type": "markdown", - "id": "2399ddc1-70df-4ee0-af8c-c5e0c7123d09", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-522faf35a6c76300", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Aufgabe\n", - "\n", - "Erstellen Sie ein NumPy Array, welches 6 Nullen reserviert und speichern Sie das Array in der Variablen `only_zeros`. " - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "a94c515e-aacb-42b1-813c-5b9ac16c062f", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-176f6befb5f45c58", - "locked": false, - "schema_version": 3, - "solution": true, - "task": false - } - }, - "outputs": [], - "source": [ - "only_zeros = None\n", - "# BEGIN SOLUTION\n", - "only_zeros = np.zeros(6)\n", - "# END SOLUTION" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "66128e44-dbdb-40db-aa0d-ef73441ef7a1", - "metadata": { - "nbgrader": { - "grade": true, - "grade_id": "cell-8ad1e3a41d459d55", - "locked": true, - "points": 1, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0. 0. 0. 0. 0. 0.]\n" - ] - } - ], - "source": [ - "print(only_zeros)\n", - "assert len(only_zeros) == 6\n", - "### BEGIN HIDDEN TESTS\n", - "for el in only_zeros:\n", - " assert el == 0\n", - "### END HIDDEN TESTS" - ] - }, - { - "cell_type": "markdown", - "id": "91993511-9afc-4265-b88f-7507490fa77d", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-0108e88f3110e70f", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Aufgabe\n", - "\n", - "Erstellen Sie ein NumPy Array mit 11 Elementen mittels `linspace`, Dabei soll der Startwert = -4 und der Endwert = 17 sein. Speichern Sie das Ergbniss in der Variablen `x_scale`. " - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "e8929ae8-a6e9-4fb5-bc9a-7d72493968cc", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-3231ee937ba8ab7a", - "locked": false, - "schema_version": 3, - "solution": true, - "task": false - } - }, - "outputs": [], - "source": [ - "x_scale = None\n", - "# BEGIN SOLUTION\n", - "x_scale = np.linspace(-4, 17, num=11)\n", - "# END SOLUTION" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "id": "3b8ac0eb-d7f8-44ef-a238-c8292409a096", - "metadata": { - "nbgrader": { - "grade": true, - "grade_id": "cell-e5d66ef7599f7b91", - "locked": true, - "points": 1, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[-4. -1.9 0.2 2.3 4.4 6.5 8.6 10.7 12.8 14.9 17. ]\n" - ] - } - ], - "source": [ - "# Hier werden ihre Lösungen getestet\n", - "print(x_scale)\n", - "assert len(x_scale) == 11\n", - "### BEGIN HIDDEN TESTS\n", - "s = np.linspace(-4, 17, num=11)\n", - "for el1, el2 in zip(x_scale, s):\n", - " assert el1 == el2\n", - "### END HIDDEN TESTS" - ] - }, - { - "cell_type": "markdown", - "id": "0b581b99-4938-491e-bc56-b4090a8134e4", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-a33f2b356b5c882d", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Sortieren\n", - "\n", - "Es gibt viele Sortieralgorithmen in der freien Wildbahn des Internets NumPy hat dies für uns bereits implementiert.\n", - "Wollen wir im folgenden eine Liste sortieren nutzen wir die `sort` Funktion:" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "id": "33d435f4-1326-4077-b39e-7da2886b4d90", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-598991a2c733ce85", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Unsortiertes Array: [ 14 9292 -1267 929 7 7\n", - " 42 -4294967297]\n", - "Sortiertes Array: [-4294967297 -1267 7 7 14 42\n", - " 929 9292]\n" - ] - } - ], - "source": [ - "unsorted = np.array([14, 9292, -1267, 929, 7, 7, 42, -2**32-1])\n", - "print(\"Unsortiertes Array:\", unsorted)\n", - "sorted = np.sort(unsorted)\n", - "print(\"Sortiertes Array:\", sorted)" - ] - }, - { - "cell_type": "markdown", - "id": "9dcc9f48-aa79-43cf-a84e-5b0ab4d5fc05", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-8b154c89f933387e", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Aufgabe\n", - "\n", - "Ihnen ist das Array `pcgs` gegeben dieses enthält zufällige Zahlen eines _Permuted Congruent Generators_. Nutzen Sie Numpy um die Werte des Arrays `pcgs` zu sortieren. Speichern Sie ihr Ergebnis in der Variablen `sorted_pcgs`." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "f011df4d-29ff-4064-b41f-6f008cc75674", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-2191ff9a88bb6ca0", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "20" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Führen Sie diese Zelle aus bevor Sie die Aufgabe lösen\n", - "from numpy.random import SeedSequence, Generator, PCG64\n", - "sg = SeedSequence(42)\n", - "pcgs = [Generator(PCG64(s)).random()*100 for s in sg.spawn(20)]\n", - "len(pcgs)" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "id": "ddc61400-dffb-4bce-8ebc-e610c532b68f", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-4b0e6942a521f2a6", - "locked": false, - "schema_version": 3, - "solution": true, - "task": false - } - }, - "outputs": [], - "source": [ - "sorted_pcgs = None\n", - "# BEGIN SOLUTION\n", - "sorted_pcgs = np.sort(pcgs)\n", - "# END SOLUTION" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "id": "08580054-e47d-43b0-a5d8-5b7addf27bc8", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-117b9c5d3b8c4bc3", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Visualisierung ihrer Lösung\n", - "import matplotlib.pyplot as plt\n", - "%matplotlib inline\n", - "plt.plot(np.arange(len(sorted_pcgs)), pcgs, color='r', label='PCGs')\n", - "plt.plot(np.arange(len(sorted_pcgs)), sorted_pcgs, color='g', label='Sortierte PCGs')\n", - "plt.title(\"PCG Random Numbers\")\n", - "plt.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "id": "84eccf42-7069-423d-a908-d2461f8347f5", - "metadata": { - "nbgrader": { - "grade": true, - "grade_id": "cell-869d69a5298f07f5", - "locked": true, - "points": 1, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ 0.1579146 1.75675021 7.12392029 7.23902481 15.50303392 20.10861125\n", - " 24.87079738 25.30205521 28.89761442 29.83032266 32.99327132 46.749078\n", - " 46.93021736 47.12091752 63.61856125 70.31144257 70.96566546 76.39328677\n", - " 85.49819194 91.67441576]\n" - ] - } - ], - "source": [ - "# Hier werden ihre Lösungen getestet\n", - "print(sorted_pcgs)\n", - "### BEGIN HIDDEN SOLUTION\n", - "for s, t in zip(sorted_pcgs, np.sort(pcgs)):\n", - " assert s == t\n", - "### END HIDDEN SOLUTION" - ] - }, - { - "cell_type": "markdown", - "id": "48b5d761-b906-4cef-b267-05e0fba53eeb", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-3d85ded8d3cf26fe", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Operationen auf Arrays\n", - "\n", - "NumPy hat die Operationen `+`, `-`, `*`, `/` und `%` alle von Haus aus Implementiert. Bei der Berechnung werden die Werte Suksessziv nacheinander miteinander Verküpft. Also `n1[0] + n2[0]`, `n1[1] + n2[1]`, ..., `n1[-1] + n2[-1]`,\n", - "\n", - "Schauen wir uns dazu die beiden Arrays `n1` & `n2` an." - ] - }, - { - "cell_type": "code", - "execution_count": 95, - "id": "32ad77b3-5411-42bb-a0c9-c2d098e2e945", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-a69046941c198fba", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "N1: [1 2 3 4]\n", - "N2: [11 12 13 14]\n", - "\n", - "N1 + N2: [12 14 16 18]\n", - "N2 - N1: [10 10 10 10]\n", - "N1 * N2: [11 24 39 56]\n", - "N1 / N2: [0.09090909 0.16666667 0.23076923 0.28571429]\n", - "N1 % N2: [1 2 3 4]\n" - ] - } - ], - "source": [ - "n1 = np.arange(1, 5)\n", - "n2 = np.arange(11, 15)\n", - "\n", - "print(\"N1:\", n1)\n", - "print(\"N2:\", n2)\n", - "print()\n", - "print(\"N1 + N2:\", n1 + n2)\n", - "print(\"N2 - N1:\", n2 - n1)\n", - "print(\"N1 * N2:\", n1 * n2)\n", - "print(\"N1 / N2:\", n1 / n2)\n", - "print(\"N1 % N2:\", n1 % n2)" - ] - }, - { - "cell_type": "markdown", - "id": "0f067243-b0a2-4e42-8373-7a9e6a3ebfe3", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-96fcc4ed333e3844", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "Das ganze Funktioniert nur und ausschließlich dann wenn beide Arrays dieselbe größe haben. Folglich läuft die Addition von Array `n1` mit Array `n3` auf einen Fehler, da Array `n3` 2 Elemente mehr Enthält:" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "id": "0495d52f-905a-4720-ac98-78963848022c", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-e0da1d4c3a72f279", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "N3: [21 22 23 24 25 26]\n" - ] - }, - { - "ename": "ValueError", - "evalue": "operands could not be broadcast together with shapes (4,) (6,) ", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[96], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m n3 \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39marange(\u001b[38;5;241m21\u001b[39m, \u001b[38;5;241m27\u001b[39m)\n\u001b[1;32m 2\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mN3:\u001b[39m\u001b[38;5;124m\"\u001b[39m, n3)\n\u001b[0;32m----> 3\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFehler N1 + N3:\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[43mn1\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mn3\u001b[49m)\n", - "\u001b[0;31mValueError\u001b[0m: operands could not be broadcast together with shapes (4,) (6,) " - ] - } - ], - "source": [ - "n3 = np.arange(21, 27)\n", - "print(\"N3:\", n3)\n", - "print(\"Fehler N1 + N3:\", n1 + n3)" - ] - }, - { - "cell_type": "markdown", - "id": "71155576-c6f8-4954-86ef-216190093749", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-8b7f52332c7aa8c6", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Shapes\n", - "\n", - "Um diesen Fehler vorzubeugen hat jedes NumPy Array den Parameter `shape`. Für `n1` ist dieser 4 und `n3` ist dieser 6." - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "id": "5311416a-992d-4c93-8522-440094135009", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-102dbd7036166206", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Shape von N1: (4,)\n", - "Shape von N3: (6,)\n" - ] - } - ], - "source": [ - "print(\"Shape von N1:\", n1.shape)\n", - "print(\"Shape von N3:\", n3.shape)" - ] - }, - { - "cell_type": "markdown", - "id": "1a1914ad-d9bf-47f6-85bf-b9f62e33be37", - "metadata": {}, - "source": [ - "Vielleicht wundern Sie sich warum die Ausgabe `(4,)` bringt. Das liegt daran das Shape multidimensional ist. Schauen wir uns die Matrix `m` bestehend aus `n1` & `n2` an:" - ] - }, - { - "cell_type": "code", - "execution_count": 98, - "id": "b3a16e98-3b1e-4bf3-87fa-918bd84b8956", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-bcec8661f2166849", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "M: [[ 1 2 3 4]\n", - " [11 12 13 14]]\n", - "Shape M: (2, 4)\n" - ] - } - ], - "source": [ - "m = np.array([n1, n2])\n", - "print(\"M:\", m)\n", - "print(\"Shape M:\", m.shape)" - ] - }, - { - "cell_type": "markdown", - "id": "c7b66742-f5f6-47a7-bd07-eb489b8bbf39", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-b3f898e60d8e3617", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "Es ist dementsprechend wichtig den Shape zu prüfen wenn Sie sich nicht Sicher sind ob zwei Arrays miteinander verknüpft werden können:" - ] - }, - { - "cell_type": "code", - "execution_count": 99, - "id": "dc836d79-b6ac-4386-9dbc-d26c3ce80551", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-048c10a814175dd3", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Error\n" - ] - } - ], - "source": [ - "if n1.shape == n3.shape:\n", - " print(\"N1 + N3:\", n1 + n3)\n", - "else:\n", - " print(\"Error\")" - ] - }, - { - "cell_type": "markdown", - "id": "2b63c961-51da-4eb2-b749-caf1af15ff92", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-d3583eabd1371892", - "locked": true, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "source": [ - "## Aufgabe\n", - "\n", - "Schauen Sie in die NumPy Dokumentation zur Funktion [reshape](https://numpy.org/doc/stable/reference/generated/numpy.reshape.html#numpy.reshape). Und shapen Sie das Array `n3` in eine Matrix der Form 3x2. Speicher Sie ihr Ergebnis in der Variablen `m23`." - ] - }, - { - "cell_type": "code", - "execution_count": 100, - "id": "051ed23d-ca7e-417f-843f-39b3276d522d", - "metadata": { - "nbgrader": { - "grade": false, - "grade_id": "cell-c41f34a6ae05874e", - "locked": false, - "schema_version": 3, - "solution": true, - "task": false - } - }, - "outputs": [], - "source": [ - "m23 = None\n", - "# BEGIN SOLUTION\n", - "m23 = n3.reshape((3, 2))\n", - "# END SOLUTION" - ] - }, - { - "cell_type": "code", - "execution_count": 104, - "id": "9fbbfd0b-49d9-47ea-9980-5df125ddb62a", - "metadata": { - "nbgrader": { - "grade": true, - "grade_id": "cell-973d2b07d04862ab", - "locked": true, - "points": 1, - "schema_version": 3, - "solution": false, - "task": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[21 22]\n", - " [23 24]\n", - " [25 26]]\n" - ] - } - ], - "source": [ - "# Hier werden ihre Lösungen getestet\n", - "print(m23)\n", - "assert m23.shape == (3,2)\n", - "### BEGIN HIDDEN TESTS\n", - "l = n3.reshape((3, 2))\n", - "for s, t in zip(m23, l):\n", - " for el1, el2 in zip(s, t):\n", - " assert el1 == el2\n", - "### END HIDDEN TESTS" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -}