Files

386 lines
9.4 KiB
Plaintext
Raw Permalink Normal View History

2026-07-22 12:04:02 +02:00
{
"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
}