386 lines
9.4 KiB
Plaintext
386 lines
9.4 KiB
Plaintext
|
|
{
|
||
|
|
"cells": [
|
||
|
|
{
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": true
|
||
|
|
},
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"source": [
|
||
|
|
"# Aufgabe 1\n",
|
||
|
|
"## Aufgabenstellung\n",
|
||
|
|
"Ein Online-Shop hat eine Liste mit Produktpreisen.\n",
|
||
|
|
"\n",
|
||
|
|
"Beispiel: preise = [20, 55, 80, 30, 120]\n",
|
||
|
|
"\n",
|
||
|
|
"Produkte über 50 EUR erhalten 10% Rabatt.\n",
|
||
|
|
"\n",
|
||
|
|
"Schreiben Sie ein Programm, das mit Hilfe von Lamdba eine neue Liste mit reduzierten Preisen erstellt."
|
||
|
|
],
|
||
|
|
"id": "897a5654dca6cca5"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"source": [
|
||
|
|
"## Bearbeitung\n",
|
||
|
|
"### Variante A"
|
||
|
|
],
|
||
|
|
"id": "ee68cc8aef8a90e1"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"from datetime import date\n",
|
||
|
|
"\n",
|
||
|
|
"preise = [20, 55, 80, 30, 120]\n",
|
||
|
|
"print(\"Originalpreis\")\n",
|
||
|
|
"print(preise)\n",
|
||
|
|
"\n",
|
||
|
|
"berechne_reduzierten_preis = lambda x: x * 0.9 if x > 50 else x\n",
|
||
|
|
"reduzierte_preise = list(map(berechne_reduzierten_preis, preise))\n",
|
||
|
|
"\n",
|
||
|
|
"print(\"Mit Rabatt\")\n",
|
||
|
|
"print(reduzierte_preise)"
|
||
|
|
],
|
||
|
|
"id": "7992fb80d80b9a9d",
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"source": "### Variante B",
|
||
|
|
"id": "79212ee1313a3dab"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"preise = [20, 55, 80, 30, 120]\n",
|
||
|
|
"\n",
|
||
|
|
"format_preis = lambda x: f'{x:.2f} EUR'\n",
|
||
|
|
"\n",
|
||
|
|
"print(\"Originalpreis\")\n",
|
||
|
|
"print(list(map(format_preis, preise)))\n",
|
||
|
|
"\n",
|
||
|
|
"berechne_reduzierten_preis = lambda x: x * 0.9 if x > 50 else x\n",
|
||
|
|
"reduzierte_preise = list(map(berechne_reduzierten_preis, preise))\n",
|
||
|
|
"\n",
|
||
|
|
"print(\"Mit Rabatt\")\n",
|
||
|
|
"print(list(map(format_preis, reduzierte_preise)))"
|
||
|
|
],
|
||
|
|
"id": "d0783086c8499ec",
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"source": [
|
||
|
|
"# Aufgabe 2\n",
|
||
|
|
"## Aufgabenstellung\n",
|
||
|
|
"Schreibe ein Programm zur Verwaltung von Mitarbeitern.\n",
|
||
|
|
"\n",
|
||
|
|
"Jeder Mitarbeiter besitzt:\n",
|
||
|
|
"- Name\n",
|
||
|
|
"- Alter\n",
|
||
|
|
"- Abteilung\n",
|
||
|
|
"- Gehalt"
|
||
|
|
],
|
||
|
|
"id": "35d95a33d0cfa30f"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"from datetime import date\n",
|
||
|
|
"from dateutil.relativedelta import relativedelta"
|
||
|
|
],
|
||
|
|
"id": "272c0dd3d94b644b",
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"class Abteilung:\n",
|
||
|
|
"\n",
|
||
|
|
" def __init__(self, name:str, *args):\n",
|
||
|
|
" self.__name = name\n",
|
||
|
|
" super().__init__(*args)\n",
|
||
|
|
"\n",
|
||
|
|
" @property\n",
|
||
|
|
" def name(self):\n",
|
||
|
|
" return self.__name\n",
|
||
|
|
"\n",
|
||
|
|
" def __str__(self):\n",
|
||
|
|
" return self.name"
|
||
|
|
],
|
||
|
|
"id": "90d84c95ac6ed431",
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"class Mitarbeiter:\n",
|
||
|
|
"\n",
|
||
|
|
" def __init__(self, name:str, geburtsdatum:date, abteilung:Abteilung, gehalt:float, *args):\n",
|
||
|
|
" self.__name = name\n",
|
||
|
|
" self.__geburtsdatum = geburtsdatum\n",
|
||
|
|
" self.__abteilung = abteilung\n",
|
||
|
|
" self.__gehalt = gehalt\n",
|
||
|
|
" super().__init__(*args)\n",
|
||
|
|
"\n",
|
||
|
|
" @property\n",
|
||
|
|
" def name(self):\n",
|
||
|
|
" return self.__name\n",
|
||
|
|
"\n",
|
||
|
|
" @property\n",
|
||
|
|
" def alter(self):\n",
|
||
|
|
" return relativedelta(date.today(), self.__geburtsdatum).years\n",
|
||
|
|
"\n",
|
||
|
|
" @property\n",
|
||
|
|
" def gehalt(self):\n",
|
||
|
|
" return self.__gehalt\n",
|
||
|
|
"\n",
|
||
|
|
" @property\n",
|
||
|
|
" def abteilung(self):\n",
|
||
|
|
" return self.__abteilung\n",
|
||
|
|
"\n",
|
||
|
|
" def __str__(self):\n",
|
||
|
|
" return f\"{self.name}, geboren {self.__geburtsdatum} ({self.alter} Jahre alt) arbeitet in {self.abteilung} und verdient {self.gehalt:.2f} EUR.\""
|
||
|
|
],
|
||
|
|
"id": "e75bd9332850f6fa",
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"source": [
|
||
|
|
"\n",
|
||
|
|
"Erstelle mindestens 6 Mitarbeiter und speichere sie in einer Liste."
|
||
|
|
],
|
||
|
|
"id": "80f0590dbc1f3eea"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"it = Abteilung(\"IT-Abteilung\")\n",
|
||
|
|
"personal = Abteilung(\"Personalabteilung\")\n",
|
||
|
|
"vertrieb = Abteilung(\"Vertrieb\")\n",
|
||
|
|
"\n",
|
||
|
|
"mitarbeiter_list = [\n",
|
||
|
|
" Mitarbeiter(\"Albert\", date(1970, 2, 22), personal, 1234.5),\n",
|
||
|
|
" Mitarbeiter(\"Bert\", date(1980, 3, 11), it, 2345.6),\n",
|
||
|
|
" Mitarbeiter(\"Camembert\", date(2008, 1, 15), it, 1234.5),\n",
|
||
|
|
" Mitarbeiter(\"Dilbert\", date(2001, 2, 22), personal, 1234.5),\n",
|
||
|
|
" Mitarbeiter(\"Elbert\", date(1999, 3, 11), it, 2345.6),\n",
|
||
|
|
" Mitarbeiter(\"Filbert\", date(1968, 1, 15), it, 5234.5),\n",
|
||
|
|
"]"
|
||
|
|
],
|
||
|
|
"id": "f54a24a33da9ef37",
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"source": [
|
||
|
|
"\n",
|
||
|
|
"Das Programm soll anschließend:\n",
|
||
|
|
"\n",
|
||
|
|
"- Alle Mitarbeiter ausgeben."
|
||
|
|
],
|
||
|
|
"id": "186cd3483d573698"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"for mitarbeiter in mitarbeiter_list:\n",
|
||
|
|
" print(mitarbeiter)"
|
||
|
|
],
|
||
|
|
"id": "888cea3bcb830aed",
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"source": "- Alle Mitarbeiter anzeigen, die älter als 30 Jahre sind.",
|
||
|
|
"id": "b29b20967f9c3ac7"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"mitarbeiter_ueber_30 = list(filter(lambda x: x.alter > 30, mitarbeiter_list))\n",
|
||
|
|
"\n",
|
||
|
|
"for mitarbeiter in mitarbeiter_ueber_30:\n",
|
||
|
|
" print(mitarbeiter)"
|
||
|
|
],
|
||
|
|
"id": "1a992cb2a3092ae5",
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"source": "- Das durchschnittliche Gehalt berechnen.",
|
||
|
|
"id": "aa7c0e7d3d25a806"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"summe_gehalt = sum(list(map(lambda x : x.gehalt, mitarbeiter_list)))\n",
|
||
|
|
"durchschnitt_gehalt = summe_gehalt / len(mitarbeiter_list)\n",
|
||
|
|
"\n",
|
||
|
|
"print(durchschnitt_gehalt)"
|
||
|
|
],
|
||
|
|
"id": "3d16715679dd9a23",
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"source": "- Alle Mitarbeiter der IT-Abteilung ausgeben.",
|
||
|
|
"id": "7a99b3570a2444a3"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"mitarbeiter_in_it = list(filter(lambda x: x.abteilung == it, mitarbeiter_list))\n",
|
||
|
|
"\n",
|
||
|
|
"for mitarbeiter in mitarbeiter_in_it:\n",
|
||
|
|
" print(mitarbeiter)"
|
||
|
|
],
|
||
|
|
"id": "bce2741c8f96e7eb",
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"source": "- Die Namen aller Mitarbeiter in Großbuchstaben ausgeben.",
|
||
|
|
"id": "51d3d88f26dc87fa"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"MITARBEITER_NAMEN = list(map(lambda x: x.name.upper(), mitarbeiter_list))\n",
|
||
|
|
"\n",
|
||
|
|
"print(MITARBEITER_NAMEN)"
|
||
|
|
],
|
||
|
|
"id": "ceab8fc00992178",
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"source": "- Alle Mitarbeiter ausgeben, deren Gehalt über 4000 € liegt.",
|
||
|
|
"id": "2909d6f2185cd42c"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"mitarbeiter_gehalt_ueber_4000 = list(filter(lambda x:x.gehalt > 4000, mitarbeiter_list))\n",
|
||
|
|
"\n",
|
||
|
|
"for mitarbeiter in mitarbeiter_gehalt_ueber_4000:\n",
|
||
|
|
" print(mitarbeiter)"
|
||
|
|
],
|
||
|
|
"id": "c7653e3dd84adf1",
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"source": [
|
||
|
|
"\n",
|
||
|
|
"### Zusatzaufgabe\n",
|
||
|
|
"Gib aus, welcher Mitarbeiter das höchste Gehalt besitzt."
|
||
|
|
],
|
||
|
|
"id": "6c2a5da8a3ffbcea"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"mitarbeiter_max_gehalt = mitarbeiter_list[0]\n",
|
||
|
|
"\n",
|
||
|
|
"for mitarbeiter in mitarbeiter_list:\n",
|
||
|
|
" if mitarbeiter_max_gehalt.gehalt < mitarbeiter.gehalt:\n",
|
||
|
|
" mitarbeiter_max_gehalt = mitarbeiter\n",
|
||
|
|
"\n",
|
||
|
|
"print(mitarbeiter_max_gehalt)\n"
|
||
|
|
],
|
||
|
|
"id": "faaf607cc0508e17",
|
||
|
|
"outputs": [],
|
||
|
|
"execution_count": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {},
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"source": "Alternative mit Lambda:",
|
||
|
|
"id": "13dba464d7ddd6af"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"metadata": {
|
||
|
|
"ExecuteTime": {
|
||
|
|
"end_time": "2026-07-22T09:46:00.972621400Z",
|
||
|
|
"start_time": "2026-07-22T09:46:00.935546200Z"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"cell_type": "code",
|
||
|
|
"source": [
|
||
|
|
"mitarbeiter_max_gehalt = max(mitarbeiter_list, key= lambda x: x.gehalt)\n",
|
||
|
|
"print(mitarbeiter_max_gehalt)"
|
||
|
|
],
|
||
|
|
"id": "1946de57dee64b91",
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"name": "stdout",
|
||
|
|
"output_type": "stream",
|
||
|
|
"text": [
|
||
|
|
"Filbert, geboren 1968-01-15 (58 Jahre alt) arbeitet in IT-Abteilung und verdient 5234.50 EUR.\n"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"execution_count": 9
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"metadata": {
|
||
|
|
"kernelspec": {
|
||
|
|
"display_name": "Python 3",
|
||
|
|
"language": "python",
|
||
|
|
"name": "python3"
|
||
|
|
},
|
||
|
|
"language_info": {
|
||
|
|
"codemirror_mode": {
|
||
|
|
"name": "ipython",
|
||
|
|
"version": 2
|
||
|
|
},
|
||
|
|
"file_extension": ".py",
|
||
|
|
"mimetype": "text/x-python",
|
||
|
|
"name": "python",
|
||
|
|
"nbconvert_exporter": "python",
|
||
|
|
"pygments_lexer": "ipython2",
|
||
|
|
"version": "2.7.6"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"nbformat": 4,
|
||
|
|
"nbformat_minor": 5
|
||
|
|
}
|