{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Software Entwicklung \n", "\n", "## Kapitel 3: Listen und Tupel" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 3.4 Traversieren \n", "\n", "Häufig müssen Listen von vorne bis hinten durchlaufen werden, um mit den Elementen der Liste Berechnungen \n", "durchzuführen oder Aktionen auszuführen. Dieses Traversieren der Liste kann bereits mit den bekannten \n", "Sprachmitteln erledigt werden:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [], "source": [ "liste = [3, 7, 4, 9]\n", "index = 0\n", "while index < len(liste):\n", " print(liste[index])\n", " index = index + 1" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Allerdings bietet Python eine eigene Schleifenkonstruktion für das Traversieren einer Sequenz (wie z.B. einer Liste).\n", "Dabei ist nach dem Schlüsselwort for eine Variable anzugeben (hier element genannt),\n", "die sukzessive alle Werte annimmt, die in der Liste enthalten sind. Eine Variable für den Index ist nicht mehr nötig.\n", " " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [], "source": [ "liste = [3, 7, 4, 9]\n", "for element in liste:\n", " print(element)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Neben Listen können z.B. auch Strings mit Hilfe von for durchlaufen werden." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [], "source": [ "s = \"Hello!\"\n", "for char in s:\n", " print(char)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Die bekannten Schlüsselworte break und continue können auch bei einer \n", "for-Schleife verwendet werden." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [], "source": [ "text = input(\"Text:\")\n", "vokale = ['A', 'E', 'O', 'U', 'I', 'a', 'e', 'o', 'u', 'i']\n", "ergebnis = \"\"\n", "\n", "for char in text:\n", " if char in vokale:\n", " continue\n", " ergebnis = ergebnis + char\n", "\n", "print(ergebnis)\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 3.5 Range\n", "\n", "Möchte man mit einer for-Schleife über einen Zahlenbereich iterieren,\n", "so kann mit Hilfe der Built-In-Funktion range eine passende Sequenz \n", "erzeugt werden. Der Zahlenbereich startet - sofern nichts anderes angegeben wurde - bei 0\n", "und endet so, dass die übergebene Grenze gerade nicht erreicht wird." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [], "source": [ "bereich = range(1000)\n", "print(bereich)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Ein *Range* ist keine Liste, da man sich den Speicherplatz für viele einzelne \n", "Elemente sparen kann, wenn man die Unter- und Obergrenze kennt. Möchte man eine\n", "Sequenz wie *Range* doch in eine Liste umwandeln, so kann die Built-In-Funktion \n", "list verwendet werden." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [], "source": [ "bereich = range(50)\n", "print(list(bereich))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Ein *Range* kann auch mit Angabe der Untergrenze, der Obergrenze und der Sprungweite angelegt werden." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [], "source": [ "unten = 10\n", "oben = 20\n", "sprung = 2\n", "bereich = range(unten, oben, sprung)\n", "print(list(bereich))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Ein *Range* kann von einer for-Schleife durchlaufen werden, ohne dass er zuvor in eine \n", "Liste umgewandelt wird." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [], "source": [ "for index in range(5):\n", " print(index)" ] } ], "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 }