{
 "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
}
