Browse Source

Move strings to own notebook and add more details.

master
paulusja 1 year ago
parent
commit
6720e5c5d2
2 changed files with 251 additions and 96 deletions
  1. 0
    96
      03kapitel/034 Comprehensions.ipynb
  2. 251
    0
      03kapitel/035 Strings.ipynb

+ 0
- 96
03kapitel/034 Comprehensions.ipynb View File

@@ -89,102 +89,6 @@
"print(neue_liste)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### 3.8 Listen und Strings\n",
"\n",
"Gelegentlich möchte man einen String in einzelne Wörter zerlegen und diese als\n",
"Liste zurückgeliefert bekommen. Hierzu dient die Operation <code>split</code>, die \n",
"in Dot-Notation im Datentyp String enthalten ist."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"pycharm": {
"is_executing": false,
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"text =\"Software Entwicklung macht Spaß\"\n",
"liste = text.split()\n",
"print(liste)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Normalerweise verwendet <code>split</code> ein *Whitespace*-Zeichen (d.h. Leerzeichen, Tabulator, neue Zeile,...)\n",
"als Trennzeichen für die Zerlegung. Es kann jedoch auch eine andere Zeichenkette festgelegt werden. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"pycharm": {
"is_executing": false,
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"text = \"der, die, das, wieso, weshalb, warum\"\n",
"liste = text.split(\", \")\n",
"print(liste)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Hinweis: Mehrere unterschiedliche Trennzeichen sind mit der Standard-<code>split</code>-Funktion nicht realisierbar. \n",
"Dazu benötigt man *reguläre Ausdrücke*, die zu einem späteren Zeitpunkt eingeführt werden."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Soll umgekehrt aus einer Liste von einzelnen Wörtern ein String zusammengesetzt werden, kann die \n",
"Funktion <code>join</code> genutzt werden. Sie wird in der Dot-Notation mit einem String verwendet,\n",
"der die einzufügenden Trennzeichen enthält."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"pycharm": {
"is_executing": false,
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"liste = [\"das\", \"ist\", \"das\", \"Haus\", \"vom\", \"Nikolaus\"]\n",
"text = \"\".join(liste)\n",
"print(text)"
]
},
{
"cell_type": "markdown",
"metadata": {

+ 251
- 0
03kapitel/035 Strings.ipynb View File

@@ -0,0 +1,251 @@
{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Software Entwicklung \n",
"\n",
"## Kapitel 3: Listen und Tupel\n",
"\n",
"### 3.8 Strings\n",
"\n",
"Zeichenketten bzw. Strings sind in Python nichts anderes als spezielle Listen, deren Elemente Zeichen sind. Man kann also quasi alles mit Strings anstellen, das man mit Listen auch anstellen kann. So kann man durch eine Zeichenkette Zeichen für Zeichen iterieren. Werte werden als Zeichenketten deklariert, indem man eine Zeichenkette in einfache oder doppelte Anführungszeichen stellt."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"pycharm": {
"is_executing": false,
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"zeichenkette = 'Dies ist eine Zeichenkette.'\n",
"\n",
"for zeichen in zeichenkette:\n",
" print(zeichen)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Eine Zeichenkette lässt sich sehr leicht umdrehen, genau wie eine Liste."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"pycharm": {
"is_executing": false,
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"zeichenkette = 'Dies ist eine Zeichenkette.'\n",
"print(zeichenkette[::-1])"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Auch lassen sich Zeichen an bestimmten Positionen extrahieren bzw. Teilstrings mittels Slicing wie bei Listen extrahieren."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"pycharm": {
"is_executing": false,
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"zeichenkette = 'Dies ist eine Zeichenkette.'\n",
"print(zeichenkette[5])\n",
"print(zeichenkette[5:-2])"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Gelegentlich möchte man einen String in einzelne Wörter zerlegen und diese als\n",
"Liste zurückgeliefert bekommen. Hierzu dient die Operation <code>split</code>, die \n",
"in Dot-Notation im Datentyp String enthalten ist."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"pycharm": {
"is_executing": false,
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"text =\"Software Entwicklung macht Spaß\"\n",
"liste = text.split()\n",
"print(liste)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Normalerweise verwendet <code>split</code> ein *Whitespace*-Zeichen (d.h. Leerzeichen, Tabulator, neue Zeile,...)\n",
"als Trennzeichen für die Zerlegung. Es kann jedoch auch eine andere Zeichenkette festgelegt werden. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"pycharm": {
"is_executing": false,
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"text = \"der, die, das, wieso, weshalb, warum\"\n",
"liste = text.split(\", \")\n",
"print(liste)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Hinweis: Mehrere unterschiedliche Trennzeichen sind mit der Standard-<code>split</code>-Funktion nicht realisierbar. \n",
"Dazu benötigt man *reguläre Ausdrücke*, die zu einem späteren Zeitpunkt eingeführt werden."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Soll umgekehrt aus einer Liste von einzelnen Wörtern ein String zusammengesetzt werden, kann die \n",
"Funktion <code>join</code> genutzt werden. Sie wird in der Dot-Notation mit einem String verwendet,\n",
"der die einzufügenden Trennzeichen enthält."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"pycharm": {
"is_executing": false,
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"liste = [\"das\", \"ist\", \"das\", \"Haus\", \"vom\", \"Nikolaus\"]\n",
"text = \" \".join(liste)\n",
"print(text)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Zudem bieten Strings viele weitere, hilfreiche Funktionen an, die deren Verarbeitung enorm erleichtern. Hier folgt ein kleiner Auszug."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"zeichenkette = \"das ist das Haus vom Nikolaus.\"\n",
"\n",
"print(f'Beginnt die Zeichenkette mit dem Teilstring \\'das ist\\'? {zeichenkette.startswith(\"das ist\")}')\n",
"print(f'Endet die Zeichenkette auf dem Teilstring \\'aus.\\'? {zeichenkette.endswith(\"aus.\")}')\n",
"print(f'Setze den ersten Buchstaben groß und alle anderen klein: {zeichenkette.capitalize()}')\n",
"print(f'Klein geschriebene Zeichenkette: {zeichenkette.lower()}')\n",
"print(f'Groß geschriebene Zeichenkette: {zeichenkette.upper()}')\n",
"\n",
"zeichenkette_mit_whitespaces = ' Ich bin eine Zeichenkette.\\n'\n",
"print(f'Zeichenkette mit Whitespaces am Anfang und Ende: {zeichenkette_mit_whitespaces} Wenn ein \\\\n am Ende der Zeichenkette steht, steht dieser Satz in einer neuen Zeile.')\n",
"print(f'Entferne Whitespaces vom Anfang und Ende: {zeichenkette_mit_whitespaces.strip()} Wenn ein \\\\n am Ende der Zeichenkette steht, steht dieser Satz in einer neuen Zeile.')\n",
"\n",
"zahl_als_string = '123'\n",
"print(f'Könnte man die Zahl zu einer Dezimalzahl konvertieren? {zahl_als_string.isdecimal()}')\n",
"print(int(zahl_als_string))"
]
}
],
"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"
},
"pycharm": {
"stem_cell": {
"cell_type": "raw",
"metadata": {
"collapsed": false
},
"source": []
}
}
},
"nbformat": 4,
"nbformat_minor": 1
}

Loading…
Cancel
Save