programmieren_wise_24_25/Material/Tutorial2_Lösungen.ipynb

533 lines
11 KiB
Plaintext
Raw Permalink Normal View History

2024-11-15 14:07:18 +01:00
{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"id": "1486c477-e52f-492a-a699-4f6668f43826",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"<div style=\"display:flex;\">\n",
" <div style=\"text-align: left\">\n",
" <h1>Lösungen Tutorial 2</h1>\n",
" </div>\n",
" <img style=\"float: right; margin: 0px 15px 15px 0px\" src=\"https://preview.redd.it/44aw5j979ve61.png?auto=webp&s=a0285d3a6e42e88b15bd738bc483412bb3efb019\" width=\"300\" />\n",
"</div>"
]
},
{
"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
}