From 9bd7d6b23f8757c07be8e777db58055029afffde Mon Sep 17 00:00:00 2001 From: paulusja Date: Mon, 13 Apr 2026 09:19:44 +0200 Subject: [PATCH] Add current solutions. --- uebungen.ipynb | 154 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 145 insertions(+), 9 deletions(-) diff --git a/uebungen.ipynb b/uebungen.ipynb index 6147918..d2f558d 100644 --- a/uebungen.ipynb +++ b/uebungen.ipynb @@ -1121,6 +1121,17 @@ "source": [ "# Fügen Sie hier Ihren Code für die Funktion ein.\n", "\n", + "def pascal(list_arg: list) -> list:\n", + " result = [1]\n", + "\n", + " if len(list_arg) > 1:\n", + " result.extend([arg1+arg2 for arg1, arg2 in zip(list_arg[:-1], list_arg[1:])])\n", + " \n", + " if len(list_arg) > 0:\n", + " result.append(1)\n", + "\n", + " return result\n", + "\n", "print(pascal([]))\n", "print(pascal([5]))\n", "print(pascal([5, 2, 7, 3]))" @@ -1143,7 +1154,37 @@ "source": [ "# Fügen Sie Ihren Code für die Funktion prim_sum_up_to ein.\n", "\n", - "print(prim_sum_up_to(100))" + "import timeit\n", + "\n", + "def is_prim(num):\n", + " for div in range(2, num//2+1):\n", + " if num % div == 0:\n", + " return False\n", + " return True\n", + "\n", + "def filter_prim(n):\n", + " prims = [True for _ in range(n+1)]\n", + "\n", + " prims[0] = False\n", + " prims[1] = False\n", + "\n", + " for idx, is_prim in enumerate(prims):\n", + " if is_prim:\n", + " for idx2 in range(idx*2, n+1, idx):\n", + " prims[idx2] = False\n", + "\n", + " return [idx for idx, elem in enumerate(prims) if elem]\n", + "\n", + "def prim_sum_up_to2(n):\n", + " return sum(filter_prim(n))\n", + "\n", + "def prim_sum_up_to1(n):\n", + " return sum([num for num in range(2, n+1) if is_prim(num)])\n", + "\n", + "#print(prim_sum_up_to1(20))\n", + "\n", + "print(timeit.timeit(lambda: prim_sum_up_to1(1000), number=1000))\n", + "print(timeit.timeit(lambda: prim_sum_up_to2(1000), number=1000))" ] }, { @@ -1169,7 +1210,19 @@ "source": [ "liste = [1, 'ABBA', 23.3, 45, 'Text', -123]\n", "\n", - "# Fügen Sie hier Ihren Code ein." + "# Fügen Sie hier Ihren Code ein.\n", + "\n", + "# list_dict = {}\n", + "\n", + "# for idx, elem in enumerate(liste):\n", + "# list_dict[idx] = elem\n", + "\n", + "#list_dict = {0: 1, 1: 'ABBA', 2: 23.5, 3: 45, 4: 'Text', 5: -123}\n", + "\n", + "list_dict = {idx: value for idx, value in enumerate(liste)}\n", + "\n", + "for key in list_dict:\n", + " print(f'{key} --> {list_dict[key]}')\n" ] }, { @@ -1199,7 +1252,27 @@ "metadata": {}, "outputs": [], "source": [ - "# Fügen Sie hier Ihren Code ein." + "# Fügen Sie hier Ihren Code ein.\n", + "\n", + "stud_dict = {}\n", + "\n", + "stud_id = -1\n", + "\n", + "while stud_id != 0:\n", + " stud_id = int(input('Geben Sie eine Matrikelnummer ein: '))\n", + "\n", + " if stud_id != 0:\n", + " if stud_id in stud_dict.keys():\n", + " print(f'Unter {stud_id} ist {stud_dict[stud_id]} gespeichert.')\n", + " elif stud_id > 0:\n", + " name = input('Geben Sie einen Namen an: ')\n", + " stud_dict[stud_id] = name\n", + " print(f'Unter {stud_id} wurde {name} gespeichert.')\n", + " elif stud_id < 0 and -stud_id in stud_dict:\n", + " del stud_dict[-stud_id]\n", + " print(f'Eintrag {-stud_id} wurde gelöscht.')\n", + " else:\n", + " print('Unbekannte Matrikelnummer.')" ] }, { @@ -1232,7 +1305,12 @@ "metadata": {}, "outputs": [], "source": [ - "# Fügen Sie hier Ihren Code ein." + "# Fügen Sie hier Ihren Code ein.\n", + "altes_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 3}\n", + "neues_dict = {altes_dict[key]: key for key in altes_dict}\n", + "\n", + "print(altes_dict)\n", + "print(neues_dict)" ] }, { @@ -1273,7 +1351,24 @@ "metadata": {}, "outputs": [], "source": [ - "# Fügen Sie hier Ihren Code ein." + "# Fügen Sie hier Ihren Code ein.\n", + "\n", + "freq_dict = {}\n", + "\n", + "#is_freq_3 = False\n", + "\n", + "while 3 not in freq_dict.values():\n", + " input_line = input('Eingabe: ')\n", + "\n", + " if input_line not in freq_dict:\n", + " freq_dict[input_line] = 0\n", + " \n", + " freq_dict[input_line] += 1\n", + "\n", + " #freq_dict[input_line] = freq_dict.get(input_line, default=0) + 1\n", + "\n", + "for line in freq_dict:\n", + " print(f'Die Eingabe {line} wurde {freq_dict[line]}-mal getätigt.')" ] }, { @@ -1302,7 +1397,17 @@ "metadata": {}, "outputs": [], "source": [ - "# Fügen Sie hier Ihren Code ein." + "# Fügen Sie hier Ihren Code ein.\n", + "\n", + "some_dict = {'a': 'ein wert'}\n", + "\n", + "def get_it_or_none1(some_dict, key):\n", + " if key in some_dict:\n", + " return key\n", + " else:\n", + " return None\n", + "\n", + "print(get_it_or_none1(some_dict, 'b'))" ] }, { @@ -1320,7 +1425,15 @@ "metadata": {}, "outputs": [], "source": [ - "# Fügen Sie hier Ihren Code ein." + "# Fügen Sie hier Ihren Code ein.\n", + "\n", + "def get_it_or_none2(some_dict, key):\n", + " try:\n", + " return some_dict[key]\n", + " except:\n", + " return None\n", + "\n", + "print(get_it_or_none2(some_dict, 'b'))\n" ] }, { @@ -1339,7 +1452,9 @@ "source": [ "import timeit\n", "\n", - "# Fügen Sie hier Ihren Code ein." + "# Fügen Sie hier Ihren Code ein.\n", + "print(timeit.timeit(lambda: get_it_or_none1(some_dict, 'b'), number=100000))\n", + "print(timeit.timeit(lambda: get_it_or_none2(some_dict, 'b'), number=100000))" ] }, { @@ -1361,7 +1476,8 @@ "metadata": {}, "outputs": [], "source": [ - "# Fügen Sie hier Ihren Code ein." + "# Fügen Sie hier Ihren Code ein.\n", + "print(timeit.timeit(lambda: some_dict.get('b', None), number=1000))" ] }, { @@ -1378,6 +1494,26 @@ "## 8. [Aufgabengruppe Module](#toc0_)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%pip install matplotlib\n", + "%pip install numpy\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "x_vals = np.linspace(-5, 5, 1000)\n", + "cos_vals = np.cos(x_vals)\n", + "\n", + "plt.figure()\n", + "plt.plot(x_vals, cos_vals, '-')\n", + "plt.show()" + ] + }, { "cell_type": "markdown", "metadata": {},