Add OOP solutions.

This commit is contained in:
paulusja 2026-05-28 17:07:08 +02:00
parent b03b89f316
commit 1958ac94f5

View File

@ -1738,24 +1738,12 @@
"print(r)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Fügen Sie hier Ihren Code für \n",
"\n",
"some_str = ExtendedString('Das ist ein Test, oder etwa nicht?')\n",
"print(some_str.multisplit(' ?,'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 9.3. <a id='toc9_3_'></a>[Aufgabe](#toc0_)\n",
"Erstellen Sie eine Klasse `ExtendedString`, die die gleiche Funktionalität wie die originale `str`-Klasse anbietet, deren `split`-Funktion jedoch einen zusätzlichen Parameter `multi` anbietet. Wird `multi` nicht angegeben oder ist es auf `False` gesetzt, verhält sich `split` wie in der originalen `str`-Klasse. Ist `multi` jedoch auf `True` gesetzt, wird der jeweilige String an jedem Character des Separator-Strings geteilt. Das Argument `maxsplit` kann in diesem Fall der Einfachheit halber ignoriert werden.\n",
"Erstellen Sie eine Klasse `ExtendedString`, die die gleiche Funktionalität wie die originale `str`-Klasse anbietet. Wird `multi_split` jedoch aufgerufen, wird der jeweilige String an jedem Character des Separator-Strings geteilt.\n",
"\n",
"**Beispiel**\n",
"\n",
@ -1765,7 +1753,7 @@
"<br/>\n",
"`print(some_str.split(' ?,'))` gibt `['Das ist ein Test, oder etwa nicht?']` aus.\n",
"<br/>\n",
"`print(some_str.split(' ?,', multi=True))` gibt `['Das', 'ist', 'ein', 'Test', 'oder', 'etwa', 'nicht']` aus.\n",
"`print(some_str.multi_split(' ?,'))` gibt `['Das', 'ist', 'ein', 'Test', 'oder', 'etwa', 'nicht']` aus.\n",
"</code>"
]
},
@ -1775,7 +1763,23 @@
"metadata": {},
"outputs": [],
"source": [
"# Fügen Sie hier Ihren Code ein."
"# Fügen Sie hier Ihren Code ein.\n",
"class ExtendedString(str):\n",
" def multi_split(self, separators):\n",
" result = [self]\n",
" for sep in separators:\n",
" tmp = []\n",
" for elem in result:\n",
" tmp.extend(elem.split(sep))\n",
" result = [entry for entry in tmp if len(entry) > 0]\n",
" \n",
" return result\n",
" \n",
"\n",
"some_str = ExtendedString('Das ist ein Test, oder etwa nicht?')\n",
"print(some_str.split())\n",
"print(some_str.split(' ?,'))\n",
"print(some_str.multi_split(' ?,'))"
]
},
{