Remove all exercises as they were moved to the exercise notebook.
This commit is contained in:
@@ -1,234 +0,0 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"_Aufgabe 1_\n",
|
||||
"\n",
|
||||
"Schreiben Sie eine Funktion <code>get_it_or_none1</code>, die ein Dictionary und einen\n",
|
||||
"Schlüsselwert als Parameter erhält. Sie soll den im Dictionary gespeicherten Wert\n",
|
||||
"zurückgeben, wenn er enthalten ist, andernfalls <code>None</code>.\n",
|
||||
"\n",
|
||||
"Vermeiden Sie bei der Implementierung das Auftreten einer Exception, indem Sie vor\n",
|
||||
"dem Zugriff prüfen, ob der Schlüssel enthalten ist."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def get_it_or_none1(dict_arg, key):\n",
|
||||
" if key in dict_arg:\n",
|
||||
" return dict_arg[key]\n",
|
||||
" else:\n",
|
||||
" return None\n",
|
||||
" \n",
|
||||
"my_dict = {'a': 1, 2: 'b'}\n",
|
||||
"print(get_it_or_none1(my_dict, 'a'))\n",
|
||||
"print(get_it_or_none1(my_dict, 'b'))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"_Aufgabe 2_\n",
|
||||
"\n",
|
||||
"Implementieren Sie eine Funktion <code>get_it_or_none2</code> mit der gleichen\n",
|
||||
"Funktionalität. Allerdings verzichten Sie dieses Mal auf die Prüfung und Fangen\n",
|
||||
"eine evtl. auftretende Exception, um dann <code>None</code> zurückzugeben."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def get_it_or_none2(dict_arg, key):\n",
|
||||
" try:\n",
|
||||
" return dict_arg[key]\n",
|
||||
" except:\n",
|
||||
" return None\n",
|
||||
" \n",
|
||||
"my_dict = {'a': 1, 2: 'b'}\n",
|
||||
"print(get_it_or_none2(my_dict, 'a'))\n",
|
||||
"print(get_it_or_none2(my_dict, 'b'))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"_Aufgabe 3_\n",
|
||||
"\n",
|
||||
"Überprüfen Sie die Laufzeit der beiden Varianten, indem Sie jede Funktion\n",
|
||||
"10000-mal so aufrufen, dass <code>None</code> zurückgegeben wird. Was ist schneller?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import timeit\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import timeit\n",
|
||||
"\n",
|
||||
"my_dict = {}\n",
|
||||
"print(f'get_it_or_none1:: {timeit.timeit(lambda: get_it_or_none1(my_dict, 0), number=10000)}')\n",
|
||||
"print(f'get_it_or_none2:: {timeit.timeit(lambda: get_it_or_none2(my_dict, 0), number=10000)}')\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"_Aufgabe 4_\n",
|
||||
"\n",
|
||||
"Tatsächlich besitzt ein Python-Dictionary eine bisher nicht eingeführte Methode\n",
|
||||
"<code>get</code>, der neben dem Schlüssel auch ein Default-Wert übergeben werden kann,\n",
|
||||
"der zurückgegeben wird, wenn der Schlüssel nicht enthalten ist.\n",
|
||||
"\n",
|
||||
"<code>dict.get( \\< key \\>, \\< default \\> ) </code>\n",
|
||||
"\n",
|
||||
"Überprüfen Sie auch die Laufzeit dieses Ansatzes."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"print(f'get_it_or_none2:: {timeit.timeit(lambda: my_dict.get(0), number=10000)}')\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"Wie erklären Sie sich die Ergebnisse?"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"celltoolbar": "Slideshow",
|
||||
"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.9.9"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 1
|
||||
}
|
||||
@@ -1,171 +0,0 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"_Aufgabe 1_\n",
|
||||
"\n",
|
||||
"Schreiben Sie eine Funktion *prim_sum_up_to*, die die Summe aller Primzahlen von 2 bis *n* berechnet, wobei *n* als\n",
|
||||
"Parameter übergeben wird."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def prim_sum_up_to(end):\n",
|
||||
" prims = []"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def prim_sum_up_to(n):\n",
|
||||
" result = 0\n",
|
||||
" for m in range(2, n+1):\n",
|
||||
" if is_prim(m):\n",
|
||||
" result += m\n",
|
||||
" return result\n",
|
||||
"\n",
|
||||
"def is_prim(n):\n",
|
||||
" divisor = 2\n",
|
||||
" while divisor * divisor <= n:\n",
|
||||
" if n % divisor == 0:\n",
|
||||
" return False\n",
|
||||
" divisor += 1\n",
|
||||
" return True\n",
|
||||
"\n",
|
||||
"print(prim_sum_up_to(100))\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"_Aufgabe 2_\n",
|
||||
"\n",
|
||||
"Sobald Sie die Funktion mit größeren *n* aufrufen, steigt die Laufzeit des Programms an. Um zu verhindern,\n",
|
||||
"dass der Anwender fälschlicherweise annimmt, dass das Programm abgestürzt ist, soll jede Sekunde ein\n",
|
||||
"Stern ausgegeben werden, bis das Ergebnis vorliegt.\n",
|
||||
"\n",
|
||||
"Verwenden Sie hierfür das in der Standardbibliothek enthaltene Modul <code>datetime</code> und\n",
|
||||
"importieren Sie daraus die Objekte <code>datetime</code> und <code>timedelta</code>.\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%%\n"
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from datetime import datetime, timedelta\n",
|
||||
"\n",
|
||||
"last_run = datetime.now()\n",
|
||||
"intervall = timedelta(seconds=1)\n",
|
||||
"\n",
|
||||
"def do_only_every_second():\n",
|
||||
" global last_run\n",
|
||||
" if last_run + intervall > datetime.now():\n",
|
||||
" return\n",
|
||||
" print(\"*\", end='')\n",
|
||||
" last_run = datetime.now()\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def is_prim(n):\n",
|
||||
" divisor = 2\n",
|
||||
" while divisor * divisor <= n:\n",
|
||||
" if n % divisor == 0:\n",
|
||||
" return False\n",
|
||||
" divisor += 1\n",
|
||||
" do_only_every_second()\n",
|
||||
" return True\n",
|
||||
"\n",
|
||||
"print(f'\\n{prim_sum_up_to(1000000)}')\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"Vielleicht können Sie das Prinzip in einem zukünftigen Praktikum nutzen, wenn nicht bei jedem Schleifendurchlauf\n",
|
||||
"etwas passieren soll...."
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"celltoolbar": "Slideshow",
|
||||
"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.9.9"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 1
|
||||
}
|
||||
Reference in New Issue
Block a user