diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json
index 8b14402..ae00620 100644
--- a/.obsidian/workspace.json
+++ b/.obsidian/workspace.json
@@ -11,14 +11,12 @@
"id": "85d70f5e9df52245",
"type": "leaf",
"state": {
- "type": "markdown",
+ "type": "pdf",
"state": {
- "file": "Timetable.md",
- "mode": "source",
- "source": false
+ "file": "KC_Deutsch_HS_Anhrung.pdf"
},
- "icon": "lucide-file",
- "title": "Timetable"
+ "icon": "lucide-file-text",
+ "title": "KC_Deutsch_HS_Anhrung"
}
},
{
@@ -227,26 +225,33 @@
},
"active": "85d70f5e9df52245",
"lastOpenFiles": [
+ "Material/wise_24_25/Folien/6.Lösungen_Monte_Carlo.html",
+ "Material/wise_24_25/6.Lösungen_Monte_Carlo.ipynb",
+ "Material/wise_24_25/Untitled.ipynb",
+ "Material/wise_24_25/lernmaterial/6.Monte_Carlo.ipynb",
+ "README.md",
+ "Timetable.md",
+ "KC_Deutsch_HS_Anhrung.pdf",
+ "Material/wise_24_25/lernmaterial/people_in_germany.csv",
+ "Material/wise_24_25/lernmaterial/Bees.csv",
+ "Material/env/lib/python3.12/site-packages/seaborn-0.13.2.dist-info/WHEEL",
+ "Material/env/lib/python3.12/site-packages/seaborn-0.13.2.dist-info/REQUESTED",
+ "Material/env/lib/python3.12/site-packages/seaborn-0.13.2.dist-info/RECORD",
+ "Material/env/lib/python3.12/site-packages/seaborn-0.13.2.dist-info/METADATA",
+ "Material/env/lib/python3.12/site-packages/seaborn-0.13.2.dist-info/LICENSE.md",
"Lectures/17 18.02.2025.md",
"Lectures/16 17.02.2025.md",
- "Timetable.md",
"Lectures/13 31.01.2025.md",
"Lectures/12 24.01.2025.md",
"Lectures/11 17.01.2025.md",
"Lectures/10 10.01.2025.md",
"Lectures/09 13.12.2024.md",
"Lectures/10 03.01.2025.md",
- "Material/SciPy_Lösungen.slides.html",
- "Material/wise_24_25/lernmaterial/SciPy_Lösungen.ipynb",
- "Material/wise_24_25/lernmaterial/Untitled.ipynb",
- "Material/wise_24_25/lernmaterial/6.Monte_Carlo.ipynb",
"Lectures/07 29.11.2024.md",
"Lectures/06 22.11.2024.md",
"Lectures/05 15.11.2024.md",
"Gruppen/MeWi 1.md",
"Lectures/27.11.2024.md",
- "Material/wise_24_25/lernmaterial/5.SciPy.ipynb",
- "Material/Untitled.ipynb",
"Lectures/15 14.02.2025.md",
"To Do.md",
"Gruppen/Engineering 1.md",
@@ -256,10 +261,6 @@
"Gruppen/MeWi 4.md",
"Gruppen/MeWi 3.md",
"Gruppen/MeWi 2.md",
- "Material/3.Extended_Applications_Lösungen.html",
- "Material/3.Lösungen_Extended_Applications.html",
- "Material/wise_24_25/lernmaterial/2.Tutorial_2.ipynb",
- "Material/wise_24_25/lernmaterial/1.Tutorial_1.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",
@@ -269,9 +270,6 @@
"Material/env/lib/python3.12/site-packages/matplotlib/mpl-data/images/zoom_to_rect-symbolic.svg",
"Material/env/lib/python3.12/site-packages/matplotlib/mpl-data/images/subplots_large.png",
"Material/env/lib/python3.12/site-packages/matplotlib/mpl-data/images/subplots.svg",
- "Material/env/lib/python3.12/site-packages/matplotlib/mpl-data/images/subplots.png",
- "Lectures/04 08.11.2024.md",
- "Lectures/03 01.11.2024.md",
- "Lectures/02 25.10.2024.md"
+ "Material/env/lib/python3.12/site-packages/matplotlib/mpl-data/images/subplots.png"
]
}
\ No newline at end of file
diff --git a/KC_Deutsch_HS_Anhrung.pdf b/KC_Deutsch_HS_Anhrung.pdf
new file mode 100644
index 0000000..dd2c8b3
Binary files /dev/null and b/KC_Deutsch_HS_Anhrung.pdf differ
diff --git a/Material/2.vorlesung.ipynb b/Material/2.vorlesung.ipynb
deleted file mode 100644
index fdb2070..0000000
--- a/Material/2.vorlesung.ipynb
+++ /dev/null
@@ -1,1863 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "53ef5460-e38f-4d51-92e3-7d680f23d710",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "# 2. Einführung in die Programmierung für Nicht Informatiker*innen"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "391a0811-2a99-4cde-8b88-bd7e0c1d6cb8",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "source": [
- "Bitte ihre Jupyter Kennung + Vor- & Nachnamen unter folgendem link eintragen [survey](https://survey.cyperpunk.de/form/GVkRjB)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "c39f4116-a533-4d21-87e5-6d24268b995c",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "## Beispiele Print"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "48342195-b5a8-4298-9f83-2908c8a52821",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Hallo Python\n",
- "Freitag 15h\n"
- ]
- }
- ],
- "source": [
- "# Beispiel Print\n",
- "print(\"Hallo\", \"Python\", end='\\n') # Zeigen wie end Funktioniert\n",
- "print(\"Freitag 15h\") # Ausgabe mittels print"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "d08902d2-e454-4f81-bd63-30ef9a33deb2",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'Hallo Python'"
- ]
- },
- "execution_count": 2,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "\"Hallo Python\" # direkte ausgabe einer Variablen oder Wert"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "id": "63ac2349-5a3d-49f5-b379-ec92ff502694",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "432423654645"
- ]
- },
- "execution_count": 3,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "432423654645 "
- ]
- },
- {
- "cell_type": "markdown",
- "id": "0b230834-0e94-48ff-9462-5b627726db70",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "## Variablen zuweisungen"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "id": "aa39464e-eaa1-4c8c-bd29-2ca20bc35336",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "42"
- ]
- },
- "execution_count": 4,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "zahl1 = 42 # 'zahl1' speichert den Wert '42'\n",
- "zahl1"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "45281ff8-2c07-4774-9f96-e95a5b8f31ae",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "42\n"
- ]
- }
- ],
- "source": [
- "print(zahl1) # Ausgabe der Variabeln mittels print"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "id": "c9e3bf85-5b75-4efc-bbcc-9c5de28be421",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "420"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "zahl2 = 420\n",
- "zahl2"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "750a84cf-6528-4d1c-9e53-85da156d47a3",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "## Operationen mit Integern (gilt auch für Floats)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "id": "599a7dec-0e03-43a2-92df-a60777a33f03",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "462"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "zahl1 + zahl2 # Addition"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "db143bf7-4d07-4a2b-b30a-b2f9054efeb6",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "-378"
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "zahl1 - zahl2 # Subtraction"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "id": "3b96f637-a5a2-4188-9632-a99faf881f76",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "378"
- ]
- },
- "execution_count": 9,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "zahl2 - zahl1 # Order matters"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "id": "7dc56688-4dd5-441d-b9f1-2c17028338e6",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "17640"
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "zahl2 * zahl1 # Multiplikation"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "id": "4cb21e7e-f77d-4c5d-afb4-4aa0e7e974e5",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "10.0"
- ]
- },
- "execution_count": 11,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "zahl2 / zahl1 # Division"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "id": "7d941f53-9fa4-494a-9871-bf02ecad97b7",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "16"
- ]
- },
- "execution_count": 12,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "2**4 # Exponentiation"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "id": "0e6a2cae-c360-454c-a622-37e6fed45879",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "42.42"
- ]
- },
- "execution_count": 13,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "float1 = 42.42 # Fließkommzahl speichern\n",
- "float1"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "id": "d360fc12-dfff-498e-95b8-664648fb8442",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "10"
- ]
- },
- "execution_count": 14,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "zahl2 // zahl1 # Ganzzahldivision"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "id": "1813dd22-f4f0-499b-92aa-c5f5f95b8a6c",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "0"
- ]
- },
- "execution_count": 15,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "42 % 2 # Modulo (Rest einer Division)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "id": "87f97c26-4fa2-4192-ae5b-21a6adcb8aa4",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(21, 0)"
- ]
- },
- "execution_count": 16,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "divmod(42, 2) # Kombinierte Built-in funktion, welche den Wert der Ganzzahldivision und den Rest berechnet"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 17,
- "id": "5a8948ca-8662-43f1-9a1e-cb9bec803380",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "21.0"
- ]
- },
- "execution_count": 17,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "42 / 2"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 18,
- "id": "f17cc46a-906e-4fe9-9c0a-5cb81e09bcc5",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "0"
- ]
- },
- "execution_count": 18,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "42 % 2"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 19,
- "id": "a6d36974-b750-41e8-a0b3-a40fdba9f02c",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "0.30000000000000004"
- ]
- },
- "execution_count": 19,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "0.1 + 0.2 # Addition von Floats sind nicht immer akkurat"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "73b246a0-f6d9-4e19-9dc3-a5e25efd0c8c",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "## Booleans"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 20,
- "id": "99e978bc-b40e-432a-81a0-801391760fb3",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "False"
- ]
- },
- "execution_count": 20,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "0.1 + 0.2 == 0.3 # Nicht richtig aufgrund der unkorrekten binären darstellung von floats"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 21,
- "id": "fc761a8c-8988-4a20-81a1-28e33f11f138",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "True"
- ]
- },
- "execution_count": 21,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "True "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 22,
- "id": "668ad1b3-741e-46fb-a3af-375861ecbd13",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "False"
- ]
- },
- "execution_count": 22,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "False"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 23,
- "id": "0b23648c-1a8a-44e9-9941-a5e0e8b80ffb",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "2"
- ]
- },
- "execution_count": 23,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "True + True # Bools sind auch nur Zahlen (True = 1, False = 0)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "da342349-6c33-4fc6-864f-7171ac6dd029",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "## Listen"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 24,
- "id": "1b91f589-8469-49cf-90ba-af14d638d8eb",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['Hallo Python', 42, 10.1]"
- ]
- },
- "execution_count": 24,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "l = [\"Hallo Python\", 42, 10.10] # Erstellen einer Liste mit 3 elementen\n",
- "l"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 25,
- "id": "678973b3-81ad-48e2-8ab2-c1784440a91c",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['Hallo Python', 42, 10.1, 'Text']"
- ]
- },
- "execution_count": 25,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "l.append(\"Text\") # Weiteres Element an die liste anfügen\n",
- "l"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 26,
- "id": "0c68eb51-c5f1-4650-9032-31f77a72006f",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['Hallo Python', 42, 10.1, 'Text']"
- ]
- },
- "execution_count": 26,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "l"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 27,
- "id": "e41e1c08-b570-4423-a220-c428512ab686",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "10.1"
- ]
- },
- "execution_count": 27,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "g = l[2] # Zugriff auf das dritte Element der Liste\n",
- "g"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 28,
- "id": "6a4dc400-c788-4105-a57d-c42a64bf8928",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'Hallo Python'"
- ]
- },
- "execution_count": 28,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "l[0] # Zugriff erstes element der Liste"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 29,
- "id": "174211ad-dda8-4d43-87a1-eee4d582c47c",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "42"
- ]
- },
- "execution_count": 29,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "l[-3] # Auff listen lässt sich auch 'rückwärts' zugreifen"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 30,
- "id": "8ed1b344-94d0-49d6-8662-ea81d33f9d8f",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['Hallo Python', 42, 10.1]"
- ]
- },
- "execution_count": 30,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "l.remove('Text') # Einen Wert aus der Liste entfernen\n",
- "l"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "5e1f1661-cb9d-464f-be4a-51d838bde23d",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "## Strings"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 31,
- "id": "a10e3b76-8b0c-4979-880c-cb5a86c1c42a",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'Tex\"t'"
- ]
- },
- "execution_count": 31,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "str1 = 'Tex\"t' # String mit ''\n",
- "str1"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 32,
- "id": "783b1c13-fe63-452c-8f0e-8dab0c1173ee",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "\"Text'2\""
- ]
- },
- "execution_count": 32,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "str2 = \"Text'2\" # String mit \"\"\n",
- "str2"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 33,
- "id": "91a8fb1e-c9ba-4e37-81d4-fae62e30fc8c",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'\\nHallo dies ist ein \\necht langer \\nnicht formattierter \\ntext!!!! \\' \"\\n\\n'"
- ]
- },
- "execution_count": 33,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Documentation Strings oder mehrzeillige Strings\n",
- "str3 = '''\n",
- "Hallo dies ist ein \n",
- "echt langer \n",
- "nicht formattierter \n",
- "text!!!! ' \"\n",
- "\n",
- "'''\n",
- "str3 # Ausgabe mit escape Characters"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 34,
- "id": "7fa2bc58-3cf0-4ecb-ba6e-ab0af08c2806",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "Hallo dies ist ein \n",
- "echt langer \n",
- "nicht formattierter \n",
- "text!!!! ' \"\n",
- "\n",
- "\n"
- ]
- }
- ],
- "source": [
- "print(str3) # \"Hübsche\" Ausgabe"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 35,
- "id": "430c663e-6320-45bb-85ac-3781394a4a37",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'x'"
- ]
- },
- "execution_count": 35,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "str1[2] # Strings sind auch nur Listen"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 36,
- "id": "e2f20468-3ea7-411e-9c72-e29d5a344fa2",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'Tex\"t ist ein text'"
- ]
- },
- "execution_count": 36,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "f\"{str1} ist ein text\" # F-String formatierung"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 37,
- "id": "58dc5f40-26df-45e8-9c36-319dce3a11cd",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'Tex\"t ist ein text'"
- ]
- },
- "execution_count": 37,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "\"{} ist ein text\".format(str1) # Formatierung mittels format funktion"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "8dc440b6-a8c3-43a5-937f-1748d6a23c41",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "## Tuples"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 38,
- "id": "cf0bd9a6-db63-4795-847f-b6dbd0cd4d1e",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(42, 10.1)"
- ]
- },
- "execution_count": 38,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "tuple1 = (42, 10.10) # Tuple erstellen\n",
- "tuple1 "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 39,
- "id": "6a6c1c1e-ea17-4609-82c8-2fa02b05b208",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "42"
- ]
- },
- "execution_count": 39,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "tuple1[0] # auf element des Tupels zugreifen"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 40,
- "id": "a46ec0e4-0cb3-419b-ac9e-9f2a669812b0",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "ename": "AttributeError",
- "evalue": "'tuple' object has no attribute 'append'",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[0;32mIn[40], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mtuple1\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mappend\u001b[49m(\u001b[38;5;241m1\u001b[39m) \u001b[38;5;66;03m# Tuples sind unveränderlich (immutable) daher können nicht einfach elemente angefügt werden\u001b[39;00m\n",
- "\u001b[0;31mAttributeError\u001b[0m: 'tuple' object has no attribute 'append'"
- ]
- }
- ],
- "source": [
- "tuple1.append(1) # Tuples sind unveränderlich (immutable) daher können nicht einfach elemente angefügt werden"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "448e1ab1-b51e-4577-a51d-da985079bb11",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "## Dictionarys"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 41,
- "id": "eb6815fd-755f-49e0-a9c3-71e28b1096c3",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'Name': 'Phil', 'Key': 42}"
- ]
- },
- "execution_count": 41,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "dict1 = {\"Name\": \"Phil\", \"Key\": 42} # Dictionary erstellen\n",
- "dict1"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 42,
- "id": "3a00b7f8-910b-4261-9b49-cee2fefab2ec",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "42"
- ]
- },
- "execution_count": 42,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "dict1[\"Key\"] # Zugriff auf element des Dicts mittels Schlüssel"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 43,
- "id": "9128089a-d000-4cb3-87e3-524a53a93b84",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'Name': 'Phil', 'Key': 42, 'Key2': 10}"
- ]
- },
- "execution_count": 43,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "dict1[\"Key2\"] = 10 # neues Element in das Dict einfügen\n",
- "dict1"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "ea00b1d5-b0fa-4949-8d51-09b045f4d25b",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "## Sets"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 44,
- "id": "07a6f887-1831-42db-a81f-69ec41b6489b",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{1, 2, 3, 4}"
- ]
- },
- "execution_count": 44,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "set1 = {1, 1, 2, 2, 3, 3, 4} # Set erstellen\n",
- "set1 # Sets haben ausschließlich einzigartige Elemente "
- ]
- },
- {
- "cell_type": "markdown",
- "id": "729cb47d-ae3c-4317-b19e-c423b1f1fc9a",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "## Conditionals"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 45,
- "id": "23dc654e-7434-4e41-8286-c9fa86aa2fae",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "True"
- ]
- },
- "execution_count": 45,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "42 % 2 == 0 # Prüfen auf equality"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 46,
- "id": "50757a7f-d3a2-43ba-9c59-f2b122661717",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Ist Gerade\n"
- ]
- }
- ],
- "source": [
- "# Unterschiedlichen Code ausführen je nach Bedingung\n",
- "zahl = 32\n",
- "if zahl % 2 == 1: # ist die zahl Gerade?\n",
- " print(\"Ist Ungerade\") # Wenn Ja\n",
- "else:\n",
- " print(\"Ist Gerade\") # Wenn Nein"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 47,
- "id": "645f5df9-8ade-4cf3-aa7f-6bf642d53674",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Ist Gerade\n"
- ]
- }
- ],
- "source": [
- "# Argument \"verneinen\"\n",
- "zahl = 32\n",
- "if not zahl % 2 == 1: # Ist die zahl nicht gerade?\n",
- " print(\"Ist Gerade\") # Wenn Ja (Zahl nicht gerade -> Zahl gerade)\n",
- "else:\n",
- " print(\"Ist Ungerade\") # Wenn Nein "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 48,
- "id": "40d8928e-365b-4c73-a852-b13b507d7b2f",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "if 42 % 2 == 0 and 36 % 2 == 1: # Und verknüpfung alle bedingungen müssen wahr sein\n",
- " print(\"Sind beide Gerade\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 49,
- "id": "082f72fe-8ced-4acd-bd51-0b7bec7195a7",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "False"
- ]
- },
- "execution_count": 49,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "True and False"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 50,
- "id": "0f911f39-056d-42bb-abfb-521fb926a1b1",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Eine Zahl ist Gerade\n"
- ]
- }
- ],
- "source": [
- "if 42 % 2 == 0 or 36 % 2 == 1: # Oder Verknüpfung eine oder mehrere Bedingungen müssen wahr sein\n",
- " print(\"Eine Zahl ist Gerade\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 51,
- "id": "e8b94c36-e921-455a-80ae-a9f6e38a6d57",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "True"
- ]
- },
- "execution_count": 51,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "True or False"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 52,
- "id": "e828d799-89af-4991-bdc7-39d70dd30614",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "False"
- ]
- },
- "execution_count": 52,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "False or False"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 53,
- "id": "db94bbb7-c422-4566-beea-d5d606825563",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "True"
- ]
- },
- "execution_count": 53,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "True or True"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 54,
- "id": "1a7093bc-a4ce-4fbd-97c0-f93570a185c7",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Zahl ist durch 5 glatt teilbar\n"
- ]
- }
- ],
- "source": [
- "# Verschiedene Bedingungen mit verschiedenen Ausgaben\n",
- "zahl = 10\n",
- "\n",
- "if zahl % 3 == 0: # zahl durch 3 teilbar?\n",
- " print(\"Zahl ist durch 3 glatt teilbar\")\n",
- "elif zahl % 5 == 0: # Zahl durch 5 teilbar?\n",
- " print(\"Zahl ist durch 5 glatt teilbar\")\n",
- "else: # Weder noch (Base Case)\n",
- " print(\"Zahl ist nicht durch 3 oder 5 teilbar\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 55,
- "id": "eaa7e654-59b0-4ce4-80bf-f3ec83382663",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "True"
- ]
- },
- "execution_count": 55,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "zahl = 90.0\n",
- "isinstance(zahl, float) # Prüfen ob eine variable einem der Datentypen entspricht (hier float)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "dfb03801-ad4f-4006-837e-e6d62f36a02a",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "## Funktionen"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 56,
- "id": "e031a4f3-b42b-4a18-872c-1241a920b842",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "def f(x): # Einleiten einer Funktion\n",
- " ''' Berechnet das quadrat einer Zahl''' # Docstring zum beschreiben der Funktion\n",
- " # .... irgendeine Berechnung\n",
- " rückgabewert = x*x # ist der rückgabewert\n",
- " return rückgabewert #"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 57,
- "id": "0f92364f-c666-485b-be38-d293cc167f17",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "49"
- ]
- },
- "execution_count": 57,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "f(7)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "173dd25d-f83c-4dc9-847b-8d4a6f9ba4b7",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "## While Loops"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 58,
- "id": "17722b1d-0491-451f-b130-01b89ee960cf",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "0 Hallo Python\n",
- "1 Hallo Python\n",
- "2 Hallo Python\n",
- "3 Hallo Python\n",
- "4 Hallo Python\n",
- "5 Hallo Python\n",
- "6 Hallo Python\n",
- "7 Hallo Python\n",
- "8 Hallo Python\n",
- "9 Hallo Python\n"
- ]
- }
- ],
- "source": [
- "i = 0 # Condition\n",
- "while i < 10: # Prüfung\n",
- " print(i, \"Hallo Python\")\n",
- " i = i + 1 # Anpassung"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "974862d5-8279-4277-9008-726c45e392a3",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "## 99 Bootles of Beer"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "89075c38-1487-4175-8841-3546c8ac304f",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "# Vereinigung aller heute gelernten Dinge außer der Funktions Definition\n",
- "\n",
- "# 99 Bootles of Beer \n",
- "beer = 99\n",
- "while beer > -1:\t\n",
- " print()\n",
- " if beer == 0:\n",
- " print('''\n",
- " No more bottles of beer on the wall, no more bottles of beer.\n",
- " We've taken them down and passed them around;\n",
- " now we're drunk and passed out!\n",
- " ''')\n",
- " elif beer == 1:\n",
- " print(beer, \"bottle of beer on the wall,\", beer, \"bottle of beer.\")\n",
- " print(\"Take one down and pass it around, no more bottles of beer on the wall.\", end='')\n",
- " else:\n",
- " print(beer, \"bottles of beer on the wall,\", beer, \"bottles of beer.\")\n",
- " if beer - 1 == 1:\n",
- " print(f\"Take one down and pass it around, {beer - 1} bottle of beer on the wall.\") \n",
- " else:\n",
- " print(f\"Take one down and pass it around, {beer - 1} bottles of beer on the wall.\")\n",
- " \n",
- " beer -= 1\n",
- "\n",
- "# Ausgabe ist zu groß für Slides"
- ]
- }
- ],
- "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/3.Vorlesung.ipynb b/Material/3.Vorlesung.ipynb
deleted file mode 100644
index 1971ced..0000000
--- a/Material/3.Vorlesung.ipynb
+++ /dev/null
@@ -1,916 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "87873422-9971-47b4-870b-82ea5cc663f2",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "# Lösungen Tutorial 1"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "373d0d4a-c11a-4fe3-b3f2-46701690fd3a",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "**Aufgabe**: Geben Sie den Text `Hallo Python` aus. *1 Punkt*"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "bedcc819-ea7e-430e-ba1b-32543086d2dd",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Hallo Python\n"
- ]
- }
- ],
- "source": [
- "print(\"Hallo Python\")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "612aa876-5806-4ae8-96d7-578b96e1780a",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 2,
- "id": "fe38d9d9-9684-4d63-afe5-6eb68accf26d",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "a = 1\n",
- "b = -2"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "bd7c915d-03b1-4c45-820b-6e2b12e81671",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 3,
- "id": "6065bb38-0482-42b9-bd57-b0660de9eb7a",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "s = 1.5\n",
- "t = -2.7"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "87ddb6c9-5291-4693-a3e1-65ce8c0a3ea4",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 4,
- "id": "424e3dbe-ead5-4606-a1bc-6b0bb0739b40",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "-1"
- ]
- },
- "execution_count": 4,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "c = a + b\n",
- "c"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "c57e8354-bde5-4139-bf93-ceca856568fc",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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}"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "c2078093-fd22-4fc2-9c79-11e716d047b1",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "m = a*b\n",
- "d = a/b\n",
- "i = a//b\n",
- "e = a**b\n",
- "r = a%b"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "04ffad98-7f3c-40df-984a-021a2ad79800",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "**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": 6,
- "id": "68cb274d-dba5-49e8-a26e-cfb97499792f",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'Hi Mom, I am on TV!'"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "text = \"Hi Mom, I am on TV!\"\n",
- "print(text)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "9dcb699b-091d-4d17-9e22-f958a34872b5",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "**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": 7,
- "id": "745dda45-be87-4f55-a18a-fda0031148ba",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "a = 1 und b = -2\n"
- ]
- }
- ],
- "source": [
- "# 1. Möglichkeit Format Funktion\n",
- "print(\"a = {} und b = {}\".format(a, b))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "id": "579bc33a-9b26-428d-a4b8-cfb0a0960ff5",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "a = 1 und b = -2\n"
- ]
- }
- ],
- "source": [
- "# 2. Möglichkeit 'f'-String\n",
- "print(f\"a = {a} und b = {b}\")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "df713414-9909-4130-b349-352cc8d951ed",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 10,
- "id": "0371e614-f9d1-4048-a710-531b4bea7708",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "l = [0, 1, 2, 3, 4]"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "41220c65-8c6b-486d-9da7-cecdce957ef3",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 11,
- "id": "5f14b238-738e-4f37-9f80-b09b373bc387",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "l.append(42)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "007e4252-a8c5-464e-8a71-bda2718b6c5e",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 13,
- "id": "b5f1c844-9017-459a-aebf-fabd639310d9",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "2"
- ]
- },
- "execution_count": 13,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "l[2]"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "478993a1-d922-4f3c-bde7-316e01688709",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 14,
- "id": "f38d72ab-062e-4204-86dc-32864ef9cf5d",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "4"
- ]
- },
- "execution_count": 14,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "l[-2]"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "d19f6acb-8046-4a7b-b0b9-78fe655246dc",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "**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": 15,
- "id": "4faaf2df-a250-41b2-aa26-d3e6a7327f01",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "my_dict = {\"apple\": \"Apfel\", \"banana\": \"Banane\", \"cherry\": \"Kirsche\"}"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "74939a92-ed87-44d8-894a-b6d5d5a05773",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 16,
- "id": "0cfbda9f-e6fe-4145-b4a4-05e6c9cdd576",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "my_dict[\"pear\"] = \"Birne\""
- ]
- },
- {
- "cell_type": "markdown",
- "id": "e5e4cd89-f01e-44df-91b7-7b255f5c4b67",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "**Aufgabe** *1 Punkte*:\n",
- "\n",
- "Geben Sie die nur die Werte des Dictionaries `my_dict` aus."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 17,
- "id": "d0166c7e-6a45-461b-9369-53de7ccc7e8b",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "dict_values(['Apfel', 'Banane', 'Kirsche', 'Birne'])\n"
- ]
- }
- ],
- "source": [
- "print(my_dict.values())"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "7691cbcc-8af1-41be-9b01-e499d9981b48",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "**Aufgabe** *1 Punkte*:\n",
- "\n",
- "Geben Sie die Elemente des Dictionaries `my_dict` mit der Funktion `.items()` aus. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 18,
- "id": "a4f9f233-6f60-4d5d-a4ea-2f8be73be3d5",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "dict_items([('apple', 'Apfel'), ('banana', 'Banane'), ('cherry', 'Kirsche'), ('pear', 'Birne')])\n"
- ]
- }
- ],
- "source": [
- "print(my_dict.items())"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "44035bd1-3721-4510-aadc-b464f45e66a8",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "## Recap"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "1aa5ee93-7aba-4ae2-9a7f-77b133d0762b",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "```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",
- "\"gebe zurück\" = `return`\n",
- "\"gebe aus\" = `print`"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "6095807e-03f2-42d0-89b8-54356206bd79",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "**Aufgabe** *1 Punkte*:\n",
- "\n",
- "Schreibe eine Funktion `successor` die auf jede Eingabe `+1` rechnet."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 19,
- "id": "58784328-5d18-45e7-8283-226391292461",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "43"
- ]
- },
- "execution_count": 19,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "def successor(n):\n",
- " return n+1\n",
- "\n",
- "successor(42)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "c792960f-f678-43f6-ba52-9e6904ec9077",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 20,
- "id": "b49b07e2-b2b6-4dc6-8ad7-32e4722616e9",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "7"
- ]
- },
- "execution_count": 20,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "def add(a,b):\n",
- " return a+b\n",
- "\n",
- "add(2,5)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "a94076aa-259b-44ee-9ee4-e239089d04fe",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 21,
- "id": "e5f9cd1d-3bd7-49ff-9ea7-53899db1d911",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Gerade Zahl\n",
- "Ungerade Zahl\n"
- ]
- }
- ],
- "source": [
- "def is_odd(n):\n",
- " if n % 2 == 0:\n",
- " return \"Gerade Zahl\"\n",
- " else:\n",
- " return \"Ungerade Zahl\"\n",
- "\n",
- "print(is_odd(2))\n",
- "print(is_odd(3))"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "b65cb60c-34ad-40eb-b0b6-934abaab3bb6",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "**Aufgabe** 7 Punkte: 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."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 22,
- "id": "bec1be94-561e-4379-86a0-d302ef150920",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "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=', ')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 25,
- "id": "ad665bb0-9976-43e9-b8ab-bb52c4a0f1d4",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Negative Zahl False\n",
- "Null False\n",
- "Float False\n",
- "Testen über 15\n",
- "1, 2, Foo, 4, Bar, Foo, 7, 8, Foo, Bar, 11, Foo, 13, 14, FooBar, 16, "
- ]
- }
- ],
- "source": [
- "# Testen\n",
- "print(\"Negative Zahl\", fubar(-1))\n",
- "print(\"Null\", fubar(0))\n",
- "print(\"Float\", fubar(0.1))\n",
- "print(\"Testen über 15\")\n",
- "fubar(16)"
- ]
- }
- ],
- "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/Tutorial2_Lösungen.ipynb b/Material/Tutorial2_Lösungen.ipynb
deleted file mode 100644
index 010627a..0000000
--- a/Material/Tutorial2_Lösungen.ipynb
+++ /dev/null
@@ -1,532 +0,0 @@
-{
- "cells": [
- {
- "attachments": {},
- "cell_type": "markdown",
- "id": "1486c477-e52f-492a-a699-4f6668f43826",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "
\n",
- "
\n",
- "
Lösungen Tutorial 2
\n",
- " \n",
- "
\n",
- "
"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "89c3ed2f-6f9b-4d5c-adeb-482b4fd83b2b",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 2,
- "id": "d6de90ca-1db9-4c59-a5a4-42016370cb35",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "15"
- ]
- },
- "execution_count": 2,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "def sum_up(n: int) -> int:\n",
- " count = 0\n",
- " for i in range(1,n+1):\n",
- " count += i\n",
- " return count\n",
- "\n",
- "sum_up(5)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "7a9de268-09e4-45e5-8aa9-db5ae79e9540",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "source": [
- "Es gibt immer einen besseren weg.\n",
- "\n",
- "Nach Gauß:\n",
- "\n",
- "$$\\sum_{k=1}^n k = 1 + 2 + 3 + \\dots + n = \\frac{n(n+1)}{2}$$"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "id": "fd8eea02-c356-4906-8db8-ae4cdaf4f97c",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "15"
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# nach Gauß\n",
- "def sum_up(n: int) -> int:\n",
- " return int(n*(n+1)/2)\n",
- "\n",
- "sum_up(5)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "ea73e1ec-7b2a-4293-b269-03b8054aaa54",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 7,
- "id": "2a3e9cac-49ee-49f0-88da-a75e9611f1d8",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'a': 56, 5: 12, 'python': 9, 3.14: 1.141414}"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Vorgegeben\n",
- "dict2 = {\"a\": 56, 5: 12, \"python\": 9, 3.14: 1.141414}\n",
- "dict2"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "26aa9f7b-b5e8-4f8f-a0d0-b796b253ad71",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'a': 175615, 5: 1727, 'python': 728, 3.14: 0.48706374396146557}"
- ]
- },
- "execution_count": 5,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Kurze Lösung mittels Dictionary Comprehension\n",
- "dict2 = {key: value**3-1 for key, value in dict2.items()}\n",
- "dict2"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "4f625aaf-a04b-4c08-b18b-915b61c0145c",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'a': 175615, 5: 1727, 'python': 728, 3.14: 0.48706374396146557}"
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Lange Übersichtliche Lösung\n",
- "for key, value in dict2.items():\n",
- " dict2[key] = dict2[key]**3 - 1\n",
- "dict2"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "c4a7b4a9-7cbd-4127-8832-fdd7c3541409",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "### 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": 11,
- "id": "f8e84221-f7da-474a-aa14-bcf7d1d3a201",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[1, 8, 27, 64, 125, 216]"
- ]
- },
- "execution_count": 11,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "cubics = [n**3 for n in range(1,7)]\n",
- "cubics"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "3cdbb5b7-f828-48eb-ba49-09d5ae68c2d7",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 12,
- "id": "90875b44-8209-498a-ad38-063772588711",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "with open('testfile.txt', 'w') as f:\n",
- " for _ in range(100):\n",
- " f.write(\"Python\\n\")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "c69ac8e9-34ef-413a-a39f-7db6a830cde3",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 14,
- "id": "a8395ec5-59dc-43e3-a59d-9dea7cf1f21d",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Anzahl der gelesenen Zeilen: 100\n"
- ]
- }
- ],
- "source": [
- "lines = None # vorgegeben\n",
- "with open('testfile.txt', 'r') as f:\n",
- " lines = f.readlines()\n",
- "\n",
- "print(\"Anzahl der gelesenen Zeilen:\", len(lines))"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "00561f0d-9d9f-45bd-bf1f-824f04edf795",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 15,
- "id": "63c44277-581a-426c-8e2d-ed911688ca91",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "82"
- ]
- },
- "execution_count": 15,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "rand = None # vorgegeben\n",
- "import random\n",
- "random.seed(42)\n",
- "rand = random.randint(1,100)\n",
- "rand"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "78ec5791-46b7-4693-b276-7f5e73a18eb7",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "tags": []
- },
- "source": [
- "### Aufgabe\n",
- "\n",
- "*1 Punkt*\n",
- "\n",
- "Importieren Sie die Built-In Library `datetime` als `dt`."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "id": "e3f4fe99-5980-4c2a-be4e-ae777f4bbb3d",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "2024-11-08 11:58:43.750641\n"
- ]
- }
- ],
- "source": [
- "import datetime as dt\n",
- "print(dt.datetime.now())"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "d1bf6ca3-4f96-456e-a8e9-34d9fd081c5b",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "slide"
- },
- "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": 17,
- "id": "eed3fc0f-67c1-43d5-ac2f-f6b7646aecdd",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": []
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "2.0"
- ]
- },
- "execution_count": 17,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "from math import sqrt\n",
- "s4 = sqrt(4)\n",
- "s4"
- ]
- }
- ],
- "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.5"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/Material/Untitled.ipynb b/Material/Untitled.ipynb
deleted file mode 100644
index e8600fc..0000000
--- a/Material/Untitled.ipynb
+++ /dev/null
@@ -1,122 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "d74e7711-ed1a-4749-8827-2e6fa5798d68",
- "metadata": {},
- "outputs": [],
- "source": [
- "def lcg (a,c,m, startwert):\n",
- "\n",
- " if a<=0 or c<0 or m<=0 or startwert <0:\n",
- " return None #prüfung der werte \n",
- " \n",
- " x = startwert \n",
- " while 1:\n",
- " x=(a*x+c)%m\n",
- " yield x "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "2993ac89-2be8-4c61-a6e2-43a1008f2d36",
- "metadata": {},
- "outputs": [],
- "source": [
- "def lcg_test(seed: int, scalar: int, modulus: int, offset: int) -> int:\n",
- " assert modulus > 0, \"Modulus must be greater than 0\"\n",
- " assert 0 <= scalar and scalar < modulus, \"Scalar must be in range 0 <= a < m\"\n",
- "\n",
- " while seed > 1:\n",
- " seed = (scalar*seed+offset) % modulus\n",
- " assert seed >= 0\n",
- " yield seed"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "id": "02a21a6d-0892-44f0-b0fd-6e5f8fe83962",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Lcg using Cocktailshaker Numbers: 3089810780120156248\n",
- "Correct should be: 3089810780120156248\n",
- "\n",
- "Lcg using Cocktailshaker Numbers: 8356396685252565260\n",
- "Correct should be: 8356396685252565260\n",
- "\n",
- "Lcg using Cocktailshaker Numbers: 1921117399837525548\n",
- "Correct should be: 1921117399837525548\n",
- "\n",
- "Lcg using Cocktailshaker Numbers: 14806858147081821235\n",
- "Correct should be: 14806858147081821235\n",
- "\n",
- "Lcg using Cocktailshaker Numbers: 2557599628047639428\n",
- "Correct should be: 2557599628047639428\n",
- "\n",
- "Lcg using Cocktailshaker Numbers: 16453652254840064460\n",
- "Correct should be: 16453652254840064460\n",
- "\n",
- "Lcg using Cocktailshaker Numbers: 15995401842808378843\n",
- "Correct should be: 15995401842808378843\n",
- "\n",
- "Lcg using Cocktailshaker Numbers: 681272290641816305\n",
- "Correct should be: 681272290641816305\n",
- "\n",
- "Lcg using Cocktailshaker Numbers: 10955466795170118648\n",
- "Correct should be: 10955466795170118648\n",
- "\n",
- "Lcg using Cocktailshaker Numbers: 13714992071537968180\n",
- "Correct should be: 13714992071537968180\n",
- "\n"
- ]
- }
- ],
- "source": [
- "s = lcg(3203021881815356449, 11742185885288659963, 2**64-1, 3935559000370003845)\n",
- "t = lcg_test(3935559000370003845, 3203021881815356449, 2**64-1, 11742185885288659963)\n",
- "\n",
- "for _ in range(10):\n",
- " stud = next(s)\n",
- " instructor = next(t)\n",
- " print(\"Lcg using Cocktailshaker Numbers:\", stud)\n",
- " print(\"Correct should be:\", instructor, end='\\n\\n')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "40aeb297-aeb5-4fca-8ae4-cb84c7f13957",
- "metadata": {},
- "outputs": [],
- "source": []
- }
- ],
- "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/V3.ipynb b/Material/V3.ipynb
deleted file mode 100644
index fb2a52c..0000000
--- a/Material/V3.ipynb
+++ /dev/null
@@ -1,1063 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "d32905fd-8062-49a1-a284-efbfbc48d00b",
- "metadata": {},
- "source": [
- "# 3. Vorlesung"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "a21df6bb-f501-474a-9e1a-7dd2a90cd92d",
- "metadata": {},
- "source": [
- "### Einfache Zählschleife"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "52207bf8-c854-4249-a011-741cc6f57283",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "1\n",
- "2\n",
- "3\n"
- ]
- }
- ],
- "source": [
- "# Als While Loop\n",
- "count = 1 # Zählvariable\n",
- "while count < 4: # Bedingung\n",
- " print(count)\n",
- " count += 1 # Hochzählen"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "id": "cfc37791-5b75-4c51-ae76-a21f306821e0",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "1\n",
- "2\n",
- "3\n"
- ]
- }
- ],
- "source": [
- "# Als For Loop\n",
- "for count in [1, 2, 3]:\n",
- " print(count)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "daaa7cbe-0cb7-45c9-89a8-241561908db2",
- "metadata": {},
- "source": [
- "Beispiel einer Zählschleife in C:\n",
- "\n",
- "```C\n",
- "for (int i = 0; i < 4, i++) {}\n",
- "```"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "3e461857-f366-46f8-ad51-9800348b4521",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "1\n",
- "2\n",
- "3\n"
- ]
- }
- ],
- "source": [
- "# Zählschleife mittels range Funktion\n",
- "for count in range(1,4):\n",
- " print(count)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "b572967d-7488-4be7-b8b7-8b0237eddc86",
- "metadata": {},
- "source": [
- "`range` kann bis zu 3 Parameter nehmen.\n",
- "\n",
- "- 1 Parameter `range(4)` -> Zählt in 1er Schritten bis exklusive der eingegebenen Zahl *0,1,2,3*\n",
- "\n",
- "Der folgend genutzte Stern `*` sagt Python er soll den `iterator` entpacken."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "id": "30d52051-cee6-4bcd-a622-c70bdd0cae1e",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "0 1 2 3\n"
- ]
- }
- ],
- "source": [
- "print(*range(4))"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "8e2dbb80-5bfd-43ee-83b6-8ef299c70391",
- "metadata": {},
- "source": [
- "- 2 Parameter `range(1,4)` -> Zählt in 1er Schritten von dem ersten Parameter bis exklusiv zum zweiten Parameter *1,2,3*"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "fe434e93-729b-466c-a530-125c668f2329",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "1 2 3\n"
- ]
- }
- ],
- "source": [
- "print(*range(1,4))"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "7d5d28a6-b873-4a2b-8e45-b02e75982c10",
- "metadata": {},
- "source": [
- "- 3 Parameter `range(1,11,2)` -> Zählt in `2`er Schritten von dem ersten Parameter bis exklusiv zum zweiten Parameter "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "id": "03e36a0d-9d0f-4dcd-8e02-3d234da9fb52",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "1 3 5 7 9\n"
- ]
- }
- ],
- "source": [
- "print(*range(1,11,2))"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "698e2a24-d96e-4f39-b76a-bfa2b6d20297",
- "metadata": {},
- "source": [
- "`For-Loops` itertieren über Iteratoren. Listen sind z.b. Iteratoren."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "id": "4f4d9b6c-c262-45a0-ab7a-ac8d3f13d110",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[0, 1, 2, 3, 4]"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "l = [0, 1, 2, 3, 4]\n",
- "l"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "fbcb9b7d-2850-41fe-82a5-09ad75191329",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "0\n",
- "1\n",
- "2\n",
- "3\n",
- "4\n"
- ]
- }
- ],
- "source": [
- "for el in l:\n",
- " print(el)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "id": "c1cb9b0a-170c-4b45-b329-e28b0f8ee818",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "5"
- ]
- },
- "execution_count": 9,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "len(l) # Anzahl 'Länge' der Liste l"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "id": "f595c1f5-4945-4ee4-89e7-cde25d2a7e41",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "0\n",
- "1\n",
- "2\n",
- "3\n",
- "4\n"
- ]
- }
- ],
- "source": [
- "# range zählt bis 'exklusive' seines Eingabeparameters um folgendes verhalten zu emulieren\n",
- "for i in range(len(l)):\n",
- " print(i)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "id": "6902e5e5-0a49-4bce-a03a-f4c4d812ffa7",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "0\n",
- "1\n",
- "2\n",
- "3\n",
- "4\n"
- ]
- }
- ],
- "source": [
- "# Iteration über die Indexe der Liste \n",
- "for i in range(len(l)):\n",
- " print(l[i]) # Zugriff über Index auf die Elemente der Liste"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "id": "4e2f0c81-894d-424d-848f-3e7cc36bd70b",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Hello\n",
- "Hello\n",
- "Hello\n",
- "Hello\n",
- "Hello\n",
- "Hello\n"
- ]
- }
- ],
- "source": [
- "# _ wird verwendet für Loops die einfach etwas immer und immer wiederholen sollen\n",
- "for _ in range(6):\n",
- " print(\"Hello\")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "c555a1d3-dc65-43e1-b19a-070653a34645",
- "metadata": {},
- "source": [
- "Folgende Dict beispiele Eklären sich dementsprechend selber"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "id": "e1fbf047-ed8c-4a27-9729-6b05ed55140a",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'a': 5, 'b': 8, 'c': 10}"
- ]
- },
- "execution_count": 13,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "d = {\"a\": 5, \"b\": 8, \"c\": 10}\n",
- "d"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "id": "faf3bea9-a308-4317-8a5d-ba4281a86671",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "dict_values([5, 8, 10])"
- ]
- },
- "execution_count": 14,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "d.values()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "id": "52262d79-76d2-4bf4-8f06-8ed55dcff7cc",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Wert: 5\n",
- "Wert: 8\n",
- "Wert: 10\n"
- ]
- }
- ],
- "source": [
- "for el in d.values():\n",
- " print(f\"Wert: {el}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "id": "280eb1d9-bfe8-4715-a54a-4b40ef542618",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Key: a\n",
- "Key: b\n",
- "Key: c\n"
- ]
- }
- ],
- "source": [
- "for key in d.keys():\n",
- " print(f\"Key: {key}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 17,
- "id": "7a0fde62-9fa8-4089-b257-d2a2263b2b0d",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Key: a mit Wert: 5\n",
- "Key: b mit Wert: 8\n",
- "Key: c mit Wert: 10\n"
- ]
- }
- ],
- "source": [
- "# Items gibt eine Liste mit tupeln zurück, jedes tuple wird in seine Elemente zerlegt und den Variablen k & v zugewiesen\n",
- "for k, v in d.items():\n",
- " print(f\"Key: {k} mit Wert: {v}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 18,
- "id": "dc988e8a-135d-483f-9ae0-d20cc861c558",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[0, 1, 4, 9, 16, 25]"
- ]
- },
- "execution_count": 18,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Liste füllen\n",
- "squared = []\n",
- "for i in range(6):\n",
- " squared.append(i*i)\n",
- "squared"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 19,
- "id": "94f148fb-a1f3-4bd9-82b0-baa3ad0b9d35",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[0, 1, 4, 9, 16, 25]"
- ]
- },
- "execution_count": 19,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# List Comprehension \n",
- "sq = [n**2 for n in range(6)]\n",
- "sq"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 20,
- "id": "3e6d5db7-3cc1-4b21-9ad0-4d3402b4765b",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}"
- ]
- },
- "execution_count": 20,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Dict füllen\n",
- "di = {}\n",
- "for n in range(6):\n",
- " di[n] = n**2\n",
- "di"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 21,
- "id": "6bd693d3-8e27-48c2-9fe4-8ecafb98b181",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}"
- ]
- },
- "execution_count": 21,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Dictionary Comprehension\n",
- "dic = {n: n**2 for n in range(6)}\n",
- "dic"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "bf09cbc2-c2c5-4f59-8ad7-c7c5e9e50f63",
- "metadata": {},
- "source": [
- "## System Interaction"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 27,
- "id": "af2dfb75-e7b5-40c9-804f-d1c8fca9d6e0",
- "metadata": {},
- "outputs": [
- {
- "name": "stdin",
- "output_type": "stream",
- "text": [
- " 4\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- "'4'"
- ]
- },
- "execution_count": 27,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "input()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 28,
- "id": "43939109-c7e5-4583-8a8d-bc12c03163e6",
- "metadata": {},
- "outputs": [
- {
- "name": "stdin",
- "output_type": "stream",
- "text": [
- " 6\n"
- ]
- }
- ],
- "source": [
- "text = input()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 29,
- "id": "d023c299-89a4-4c13-8c6e-aae4feae9004",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'6'"
- ]
- },
- "execution_count": 29,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "text"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 30,
- "id": "c6e009bc-954d-4bc6-81eb-98efbc82024a",
- "metadata": {},
- "outputs": [
- {
- "name": "stdin",
- "output_type": "stream",
- "text": [
- "Gebe bitte eine Zahl ein: 7\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- "'7'"
- ]
- },
- "execution_count": 30,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "input(\"Gebe bitte eine Zahl ein:\")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "60afb4f7-e8c5-431e-a592-b9b719f9b68c",
- "metadata": {},
- "source": [
- "## File Handling"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 24,
- "id": "d47d956b-f131-4c4c-acad-4adc5ff1508e",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "<_io.TextIOWrapper name='test.txt' mode='r' encoding='UTF-8'>"
- ]
- },
- "execution_count": 24,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "f = open('test.txt') # Öffne File und gebe den Handler an f, Standard im Lesemodus\n",
- "f"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 25,
- "id": "4d38875a-18f9-4ad6-991b-fc61ea1dd08a",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['Super Secret Message\\n', 'Hallo Welt\\n', 'Geiler Kurs\\n', 'Freitag 15h yeah']"
- ]
- },
- "execution_count": 25,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "f.readlines() # Lese den Inhalt aus f"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 28,
- "id": "1c0610b1-b6c2-430f-94c0-e50def936b16",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "<_io.TextIOWrapper name='data.txt' mode='w' encoding='UTF-8'>"
- ]
- },
- "execution_count": 28,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "data = open('data.txt', 'w') # Öffne eine beschreibare File\n",
- "data"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 29,
- "id": "1b74ffb0-487a-4ec7-9ed1-3e51b5c76450",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "18"
- ]
- },
- "execution_count": 29,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "data.write(\"Ich will nachhause\") # Schreibe in die File "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 31,
- "id": "f831efc1-b548-4a49-bbed-62c8018ecdfe",
- "metadata": {},
- "outputs": [],
- "source": [
- "# Schliese die Files\n",
- "f.close()\n",
- "data.close()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 32,
- "id": "4580acb8-cc79-440c-a463-140547883ded",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "['Super Secret Message\\n', 'Hallo Welt\\n', 'Geiler Kurs\\n', 'Freitag 15h yeah']\n"
- ]
- }
- ],
- "source": [
- "# Standard File handling\n",
- "f = open('test.txt')\n",
- "print(f.readlines())\n",
- "f.close()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 33,
- "id": "50f35e0c-5138-478c-abe9-dae163c467a4",
- "metadata": {},
- "outputs": [
- {
- "ename": "ValueError",
- "evalue": "I/O operation on closed file.",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[0;32mIn[33], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mreadlines\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# File ist geschlossen also ist lesen nicht möglich\u001b[39;00m\n",
- "\u001b[0;31mValueError\u001b[0m: I/O operation on closed file."
- ]
- }
- ],
- "source": [
- "f.readlines() # File ist geschlossen also ist lesen nicht möglich"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 35,
- "id": "999e5179-4d96-4b8b-bec6-3f8b0a857291",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "['Super Secret Message\\n', 'Hallo Welt\\n', 'Geiler Kurs\\n', 'Freitag 15h yeah']\n"
- ]
- },
- {
- "ename": "ValueError",
- "evalue": "I/O operation on closed file.",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[0;32mIn[35], line 6\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28mprint\u001b[39m(f\u001b[38;5;241m.\u001b[39mreadlines())\n\u001b[1;32m 5\u001b[0m \u001b[38;5;66;03m# File ist bereits geschlossen \u001b[39;00m\n\u001b[0;32m----> 6\u001b[0m \u001b[43mf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mreadlines\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# Wirft Fehler\u001b[39;00m\n",
- "\u001b[0;31mValueError\u001b[0m: I/O operation on closed file."
- ]
- }
- ],
- "source": [
- "# Contexte nehmen einem die Arbeit ab\n",
- "with open('test.txt', 'r') as f:\n",
- " print(f.readlines())\n",
- "\n",
- "# File ist bereits geschlossen \n",
- "f.readlines() # Wirft Fehler"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "d63dce40-9d51-4ab6-92e6-65fedb982dd8",
- "metadata": {},
- "source": [
- "# Importing"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 46,
- "id": "f92c73ed-c02b-4142-ac27-25f22caaa199",
- "metadata": {},
- "outputs": [],
- "source": [
- "import math"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 47,
- "id": "a911de4f-f9c9-4098-8369-d4f97efab684",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 47,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "math"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 48,
- "id": "7513811c-18e9-4cab-9edf-8f383be21027",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "3.141592653589793"
- ]
- },
- "execution_count": 48,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "math.pi"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 49,
- "id": "254a6fab-a259-4379-a3e3-8f11560b87d7",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "3.1622776601683795"
- ]
- },
- "execution_count": 49,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "math.sqrt(10)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 50,
- "id": "15c63d11-6da3-4c44-a579-16a2f6cbe499",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "2.0"
- ]
- },
- "execution_count": 50,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "math.sqrt(4)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 37,
- "id": "c4c97328-95dd-4e6b-bc9c-857ee5d04e25",
- "metadata": {},
- "outputs": [],
- "source": [
- "from math import sqrt"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 38,
- "id": "1f29d236-0368-4fd4-97c1-a33a6adc7bf3",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 38,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "sqrt"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 52,
- "id": "5d5a0a0d-bb66-49ad-bcee-2656afc7af47",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "9.486832980505138"
- ]
- },
- "execution_count": 52,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "sqrt(90)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 36,
- "id": "b83a73fe-8f6e-4b22-97bc-c9016206a6bd",
- "metadata": {},
- "outputs": [],
- "source": [
- "from math import * # Böse nicht mache führt nur zu unerklärbaren Fehlern"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 40,
- "id": "d1568734-9077-4444-9c0e-5dbf385dc46a",
- "metadata": {},
- "outputs": [],
- "source": [
- "import numpy as np"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 41,
- "id": "718bb6e9-1cda-438d-909a-b51064471d0a",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "np.float64(94.86832980505137)"
- ]
- },
- "execution_count": 41,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "np.sqrt(9000)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 42,
- "id": "806082c4-61fc-4345-bd85-aa4deec1414a",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 42,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "np"
- ]
- }
- ],
- "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/V4.ipynb b/Material/V4.ipynb
deleted file mode 100644
index a877ec3..0000000
--- a/Material/V4.ipynb
+++ /dev/null
@@ -1,637 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "80fd796e-f42e-4940-89ae-e7359be4d10a",
- "metadata": {},
- "source": [
- "# 4 Vorlesung"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "cb2fcdfe-257a-4736-b9c2-5fa17d63fd1b",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": ""
- },
- "tags": []
- },
- "source": [
- "## Generatoren\n",
- "```python\n",
- "def ():\n",
- " # do something\n",
- " yield \n",
- "```"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "0ea7c66c-439c-4a3b-a154-3449c2a799a1",
- "metadata": {},
- "source": [
- "### Endliche Generatoren"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "id": "d5465edd-a13d-4fa0-a805-30c35a384d54",
- "metadata": {},
- "outputs": [],
- "source": [
- "# Matrikelnummer generator\n",
- "import random \n",
- "def mat_nr_gen(anzahl: int) -> float:\n",
- " for _ in range(anzahl):\n",
- " yield random.randint(500_000, 700_000) # Generator weil yield"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "id": "48109f19-47d2-45a1-bd03-9eccb4d25372",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 16,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "sem_3 = mat_nr_gen(5) # generator erstellen\n",
- "sem_3"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "id": "413bbbf6-87c8-41ff-8680-a70e8456d865",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "559540"
- ]
- },
- "execution_count": 14,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "next(sem_3) # Nächsten Wert des Generators"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "id": "14a1220d-ae0c-428b-bd51-564e66e55854",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "606586"
- ]
- },
- "execution_count": 15,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "next(sem_3) # ..."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 18,
- "id": "af75146c-e727-41e8-b496-695b93a68a56",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "503048\n",
- "648312\n",
- "629536\n",
- "556597\n",
- "512158\n"
- ]
- }
- ],
- "source": [
- "for _ in range(5):\n",
- " print(next(sem_3)) # 5 mal den generator aufrufen"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 19,
- "id": "4691aa5c-0e3d-4dff-93c1-835a805e20e9",
- "metadata": {},
- "outputs": [
- {
- "ename": "StopIteration",
- "evalue": "",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mStopIteration\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[0;32mIn[19], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;43mnext\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43msem_3\u001b[49m\u001b[43m)\u001b[49m\n",
- "\u001b[0;31mStopIteration\u001b[0m: "
- ]
- }
- ],
- "source": [
- "next(sem_3) # Generator hat keine Werte mehr -> Fehler"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 20,
- "id": "6790f776-4201-403f-b95d-d789a4fe3a6f",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "591325\n",
- "582340\n",
- "622867\n",
- "653166\n",
- "531169\n",
- "538806\n",
- "571659\n"
- ]
- }
- ],
- "source": [
- "for mat_nr in mat_nr_gen(7): # For loop übernimmt die komplette Arbeit\n",
- " print(mat_nr)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "4cfbb732-c412-4ded-8f33-75a9917b0df1",
- "metadata": {},
- "source": [
- "### Unendliche Generatoren"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 21,
- "id": "b2b3c678-a775-4213-9a73-4d3aa48eff5e",
- "metadata": {},
- "outputs": [],
- "source": [
- "# Seriennummer generator\n",
- "def serial_nr_gen() -> int:\n",
- " while True: # \"Führe unendlich of aus\"\n",
- " yield random.randint(1000, 2000) # Generator weil yield"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 22,
- "id": "e6ba3c92-465c-487d-a936-a155ad713784",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "1940\n",
- "1748\n",
- "1342\n",
- "1463\n",
- "1100\n",
- "1748\n",
- "1158\n",
- "1577\n",
- "1321\n",
- "1949\n"
- ]
- }
- ],
- "source": [
- "ser_gen = serial_nr_gen() # Generator erstellen\n",
- "for _ in range(10):\n",
- " print(next(ser_gen)) # 10 mal den generator abfragen"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 23,
- "id": "c015d2c3-238b-454a-b75e-f81a19f89a79",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "1281"
- ]
- },
- "execution_count": 23,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "next(ser_gen) # Diesmal kein Fehler da Generator kein Ende hat"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "cd8ed607-c0e0-481c-aaa7-cf07e8c97051",
- "metadata": {},
- "source": [
- "## Type Hints"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 30,
- "id": "9f564549-70d7-4538-a3fd-7158514fa0d4",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "{2.0: 2.0, 'HI': 'HI', 9: 9, True: True}\n",
- "0.0 \n"
- ]
- }
- ],
- "source": [
- "# Beispielfunktion\n",
- "\n",
- "# Type hints zeigen dem Programmierer welche Datentypen erwartet werden\n",
- "def useless(p1: int, p2: float, p3: bool, p4: str) -> dict: \n",
- " return {p1: p1, p2: p2, p3: p3, p4: p4}\n",
- "\n",
- "print(useless(2.0, \"HI\", 9, True)) # Aufruf mit \"Falschen\" Datentypen\n",
- "\n",
- "# Beispielvariablen:\n",
- "zahl: int = 0.0 # Zahl ist ein Float\n",
- "print(zahl, type(zahl))"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "2572fb15-de4f-4be7-809b-955d26895d84",
- "metadata": {},
- "source": [
- "## Dataclasses\n",
- "\n",
- "Auto Dataclass\n",
- "\n",
- "|Attribut|Wert|\n",
- "|-|-|\n",
- "|Marke|VW|\n",
- "|Fahrzeugtyp|Limousine|\n",
- "|Seriennummer||"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 31,
- "id": "feb80166-b58a-46bf-94b0-f26142d6131f",
- "metadata": {},
- "outputs": [],
- "source": [
- "from dataclasses import dataclass"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 32,
- "id": "b9c6ba77-1d59-4058-b18c-601989d9b8db",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 32,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "dataclass # Decorator"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 34,
- "id": "81e41f92-8ce6-40de-9319-629cb69c73e9",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Auto(marke='VW', model='Limousine', serial_nr=1146)"
- ]
- },
- "execution_count": 34,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "ser_gen = serial_nr_gen()\n",
- "\n",
- "# Diese Syntax einfach merken\n",
- "@dataclass\n",
- "class Auto:\n",
- " marke: str # 1 Attribut\n",
- " model: str # 2 Attribut\n",
- " serial_nr: int = next(ser_gen) # 3 Attribut mit Standardwert\n",
- "\n",
- "Auto(\"VW\", \"Limousine\") # Erstellt eine Auto Dataclass "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 35,
- "id": "f2e0e50e-f1f9-4ead-8530-0aeb40989581",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Auto(marke='Porsche', model='SUV', serial_nr=1146)"
- ]
- },
- "execution_count": 35,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "Auto(model=\"SUV\", marke=\"Porsche\") # Attribute können explizit definiert werden"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 36,
- "id": "e5cb5618-50a9-4e38-a0b4-7e3e5e4c2295",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Auto(marke='Porsche', model='SUV', serial_nr=5678)"
- ]
- },
- "execution_count": 36,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "Auto(model=\"SUV\", serial_nr=5678, marke=\"Porsche\") # Standardwerte lassen sich überschreiben "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 37,
- "id": "655cbee0-88c0-4f60-97c5-4ef475d59f0b",
- "metadata": {},
- "outputs": [
- {
- "ename": "TypeError",
- "evalue": "Auto.__init__() got an unexpected keyword argument 'reifenzahl'",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[0;32mIn[37], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mAuto\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmodel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mSUV\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mserial_nr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m5678\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmarke\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mPorsche\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreifenzahl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m5\u001b[39;49m\u001b[43m)\u001b[49m\n",
- "\u001b[0;31mTypeError\u001b[0m: Auto.__init__() got an unexpected keyword argument 'reifenzahl'"
- ]
- }
- ],
- "source": [
- "Auto(model=\"SUV\", serial_nr=5678, marke=\"Porsche\", reifenzahl=5) # Nicht bekanntes Attribut wirft Fehler"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 38,
- "id": "22c0625c-4e7d-46aa-a711-5cc2bb759427",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'marke': 'Porsche', 'model': 'SUV', 'serial_nr': 12766}"
- ]
- },
- "execution_count": 38,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Beispiel als Dict\n",
- "vw = {\n",
- " \"marke\": \"Porsche\",\n",
- " \"model\": \"SUV\",\n",
- " \"serial_nr\": 12766\n",
- "}\n",
- "\n",
- "vw"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 39,
- "id": "77668ca0-719d-48b8-954f-b2f7becdb318",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'marke': 'Porsche', 'model': 'SUV', 'serial_nr': 12766, 'reifenzahl': 7}"
- ]
- },
- "execution_count": 39,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Dict wirft keinen Fehler\n",
- "vw[\"reifenzahl\"] = 7\n",
- "vw"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 40,
- "id": "deb76203-f99c-45d1-b1f6-8395dc22ccab",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'Porsche'"
- ]
- },
- "execution_count": 40,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "vw[\"marke\"] # Zugriff auf Wert im dict"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 41,
- "id": "b3397bbe-0925-4189-b079-bef46a3dff95",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Auto(marke='Porsche', model='SUV', serial_nr=5678)"
- ]
- },
- "execution_count": 41,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "porsche = Auto(model=\"SUV\", serial_nr=5678, marke=\"Porsche\")\n",
- "porsche"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 42,
- "id": "4a244554-957a-423d-8561-765aad99475a",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'SUV'"
- ]
- },
- "execution_count": 42,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "porsche.model # Zugriff auf Attribut in der Dataclass"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 43,
- "id": "3c02985e-e7b7-4dd6-aad5-02a3bd3e5312",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "5678"
- ]
- },
- "execution_count": 43,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "porsche.serial_nr # same"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 44,
- "id": "57ccfffc-e89b-4c51-bc6d-7bf2ca16720f",
- "metadata": {},
- "outputs": [
- {
- "ename": "KeyError",
- "evalue": "'mark'",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[0;32mIn[44], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mvw\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmark\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\n",
- "\u001b[0;31mKeyError\u001b[0m: 'mark'"
- ]
- }
- ],
- "source": [
- "vw[\"mark\"] # KeyError wenn schlüssel nicht vorhanden im dict"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 45,
- "id": "8e508117-c1b3-4bf1-b9ae-a73b7bafd801",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Auto(marke=True, model=2.14, serial_nr=1146)"
- ]
- },
- "execution_count": 45,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Type Hints sind Type Hints und hindern nicht daran \"Falsche\" Datentypen an die Dataclasss zu vergeben \n",
- "Auto(model=2.14, marke=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.5"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/Material/data.txt b/Material/data.txt
deleted file mode 100644
index c544b99..0000000
--- a/Material/data.txt
+++ /dev/null
@@ -1 +0,0 @@
-Ich will nachhause
\ No newline at end of file
diff --git a/Material/test.txt b/Material/test.txt
deleted file mode 100644
index 904a0b0..0000000
--- a/Material/test.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Super Secret Message
-Hallo Welt
-Geiler Kurs
-Freitag 15h yeah
\ No newline at end of file
diff --git a/Material/testfile.txt b/Material/testfile.txt
deleted file mode 100644
index 28bf81b..0000000
--- a/Material/testfile.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
-Python
diff --git a/Material/wise_23_24/lernmaterial/Folium & Pandas/pandas.ipynb b/Material/wise_23_24/lernmaterial/Folium & Pandas/pandas.ipynb
index eb5cac9..11d95ac 100644
--- a/Material/wise_23_24/lernmaterial/Folium & Pandas/pandas.ipynb
+++ b/Material/wise_23_24/lernmaterial/Folium & Pandas/pandas.ipynb
@@ -2684,7 +2684,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.12.0"
+ "version": "3.12.7"
}
},
"nbformat": 4,
diff --git a/Material/wise_23_24/lernmaterial/numpy & matplotlib/matplotlib.ipynb b/Material/wise_23_24/lernmaterial/numpy & matplotlib/matplotlib.ipynb
index 3dca8b3..538d7a1 100644
--- a/Material/wise_23_24/lernmaterial/numpy & matplotlib/matplotlib.ipynb
+++ b/Material/wise_23_24/lernmaterial/numpy & matplotlib/matplotlib.ipynb
@@ -1714,7 +1714,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.12.0"
+ "version": "3.12.7"
}
},
"nbformat": 4,
diff --git a/Material/wise_24_25/4.NumPy_MatPlotLib_Lösungen.ipynb b/Material/wise_24_25/4.NumPy_MatPlotLib_Lösungen.ipynb
new file mode 100644
index 0000000..3caea72
--- /dev/null
+++ b/Material/wise_24_25/4.NumPy_MatPlotLib_Lösungen.ipynb
@@ -0,0 +1,671 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "2f5e1fcf-c1b1-49e2-8f5f-8851c4662359",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": "slide"
+ },
+ "tags": []
+ },
+ "source": [
+ "# Lösungen Numpy & MatPlotLib"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "0c77fded-7665-41ea-a823-90fc631d9cb7",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": "skip"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "089b58c3-dbf7-4436-ae44-a2fda277d939",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": "slide"
+ },
+ "tags": []
+ },
+ "source": [
+ "## Aufgabe\n",
+ "\n",
+ "*1 Punkt*\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": 3,
+ "id": "f534c21c-afc6-4d61-be54-bf7ffc17947b",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": "fragment"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([0., 0., 0., 0., 0., 0.])"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "only_zeros = np.zeros(6)\n",
+ "only_zeros"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8e770dff-f8b2-4222-8487-3a239673cb42",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": "slide"
+ },
+ "tags": []
+ },
+ "source": [
+ "## Aufgabe\n",
+ "\n",
+ "*1 Punkt*\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": 4,
+ "id": "1154acb7-f10a-4b97-85ec-d8d0e4990531",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": "fragment"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([-4. , -1.9, 0.2, 2.3, 4.4, 6.5, 8.6, 10.7, 12.8, 14.9, 17. ])"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "x_scale = np.linspace(-4, 17, num=11)\n",
+ "x_scale"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "4efff856-e35c-47b0-ae03-87c94ac5cb31",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": "slide"
+ },
+ "tags": []
+ },
+ "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": 5,
+ "id": "0eaac4f3-6635-4be6-9769-103d3f982f01",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": "subslide"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ "