{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Software Entwicklung \n",
    "\n",
    "## Kapitel 1: Einführung \n",
    "\n",
    "### 1.2 Built-In Functions\n",
    "\n",
    "Jeder Python-Interpreter \"versteht\" eine Reihe von *Built-In Functions*. \n",
    "Das sind Bausteine, aus denen dann komplizierte Programme zusammengesetzt werden\n",
    "können. Der Aufruf einer Built-In Funktion (und jeder anderen Funktion) liefert \n",
    "grundsätzlich einen Rückgabewert. Darüber hinaus kann eine Built-In Funktion\n",
    "auch Seiteneffekte ausführen (z.B. eine Datei beschreiben, eine Eingabe \n",
    "entgegennehmen etc.).\n",
    "\n",
    "Im Laufe der Veranstaltung werden wir einige der Built-In Functions kennenlernen. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "#### 1.2.1 Ausgabe\n",
    "\n",
    "Eine ganz elementare Built-In Function ist\n",
    "\n",
    "```Python\n",
    "print()\n",
    "```\n",
    "Sie wird hauptsächlich wegen ihres Seiteneffekts aufgerufen, den übergeben Parameter \n",
    "auf der Konsole auszugeben und danach einen Zeilenwechsel durchzuführen."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "print(17)\n",
    "print(\"Hello World!!\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "Die Funktion <code>print</code> kann jede Art von Parameter entgegennehmen (Zeichenkette, \n",
    "Ganzzahl, Gleitkommazahl,...). Natürlich besitzt die Funktion auch einen Rückgabewert, \n",
    "der ebenfalls ausgegeben werden kann:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "print(print(17))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Der Wert <code>None</code> steht in Python für *nichts*. \n",
    "Es ist etwas anderes als die Zahl 0 oder ein Leerstring. \n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "#### 1.2.2 Ausgabe mehrerer Werte\n",
    "\n",
    "Die Anzahl der Parameter der Funktion <code>print</code> ist nicht beschränkt. \n",
    "Wird mehr als ein Parameter angegeben, so erfolgt die Ausgabe nacheinander ohne\n",
    "Zeilenumbruch."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "print(17, 4)\n",
    "print()\n",
    "print(\"Hello\", \"World\", \"!\", 17, 4)\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "#### 1.2.3 Eingabe\n",
    "\n",
    "Analog zur Ausgabe gibt es auch eine Funktion zur Eingabe eines Werts: \n",
    "\n",
    "```Python\n",
    "input(\"<prompt>\")\n",
    "```\n",
    "Der Seiteneffekt dieser Funktion ist zunächst die Ausgabe des Parameters und \n",
    "anschließend das Einlesen einer Tastatureingabe bis zum Zeilenwechsel.\n",
    "\n",
    "Der Rückgabewert der Funktion sind die eingegebenen Zeichen als Zeichenkette."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    },
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "input(\"Wie ist Ihr Name?\")\n"
   ]
  }
 ],
 "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
}
