{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# IPython Notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[Python](http://www.python.org) an sich ist ein Interpreter für die Programmiersprache Python mit einer sehr umfangreichen Programmierbibliothek.\n", "\n", "[IPython](http://www.ipython.org) ist ein ***i***nteraktives System um mit einer laufenden Pythoninstanz arbeiten zu können.\n", "Dieses hier vorliegende Skriptum ist eine Sammlung sogenannter \"IPython Notebooks\". Diese sind jeweils interaktive Dokumente, welche aus Text, Code, und Codergebnissen bestehen. Daher ist es möglich, dieses gesamte Skriptum herunterzuladen und in IPython auszuführen. Jede Codezelle kann nicht nur lokal ausgeführt werden, sondern läd auch zum interaktiven Experimentieren ein." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bedienung" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Start\n", "\n", " $ ipython notebook\n", "\n", "in der Kommandozeile in einem vorher gewählten Verzeichnis.\n", "\n", "Es öffnet sich dann der standardmäßig eingestellte Web-browser für das grafische Interface (engl. GUI).\n", "\n", "Möchte man den Browser explizit festlegen, so geschieht dies über die Umgebungsvariable `BROWSER`:\n", "\n", " $ BROWSER=firefox ipython notebook\n", " \n", "bzw. das Öffnen eines Browserfensters kann so verhindert werden:\n", "\n", " $ ipython notebook --no-browser\n", "\n", "### Speichern\n", "\n", "Ein geöffnetes Notebook speichert sich periodisch ab, jedoch ist empfehlenswert dies regelmäßig mittels bzw. durchzuführen. `File` → `Save and Checkpoint` speichert darüber hinaus einen Checkpoint ab. Dadurch lässt sich zu einer früheren Version zurückspringen. Für eine genauere Versionskontrolle bzw. Gruppenkollaborationen ist [Git](http://www.git-scm.com) empfehlenswert.\n", "\n", "### Beenden\n", "\n", "Der Notebook Server muss nach getaner Arbeit beendet werden. Dazu 2x im Terminal betätigen." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Das IPython Notebook hat zwei Ansichten\n", "\n", "* Eine Übersicht aller Worksheets im aktuellen Verzeichnis -- es kommt also darauf an, von welchem Verzeichnis aus es gestartet wurde.\n", " Ein Klick auf erzeugt ein neues,\n", " welches man mittels Klick auf den Namen passend umbennen kann.\n", "* Ein so geöffnetes, einzelnes Notebook hat eine Menüzeile und Buttons zur Bedienung.\n", " Besonders wichtig ist der -Button,\n", " welcher den Code in der aktuellen Zelle ausführt.\n", " Dies kann auch mit der +\n", " Tastenkombination bewerkstelligt werden.\n", " Hierbei wird für jedes Worksheet im Hintergrund ein sogenannter \"Kernel\" zur Ausführung des Codes gestartet.\n", " Alle Zellen eines Notebooks stehen also miteinander in Beziehung und\n", " für den globalen Status ist die Reihenfolge, in der die Zellen ausgeführt werden, relevant --\n", "\n", "also insbesondere weder deren Position noch deren Existenz!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2 Modii\n", "\n", "Grundsätzlich unterscheidet man dabei zwei Bedienmodalidäten: **Editermodus** und **Kommandomodus**.\n", "Im Editiermodus kann man den Inhalt der aktiven Zelle verändern,\n", "während im Kommandomus Befehle an das gesamte Notebook geschickt werden, die aktive Zelle gewählt werden kann, etc.\n", "\n", "Ein Mausklick auf eine Zelle wählt sie aktiv aus, ein Doppelklick oder und man kann sie editieren.\n", "Zurück in den Kommandomodous kommt man mit (ohne Auswertung) bzw. + (mit Auswertung).\n", "\n", "Die folgenden **Tastenkombinationen** sind sehr praktisch,\n", "und für eine effektive Bedienung unerlässlich.\n", "\n", "* **Kommandomodus**: Dieser Modus erlaubt zwischen den Zellen herumzuspringen, Zellen zu löschen, kopieren, verschieben, etc.\n", "\n", " * **j/k (bzw. Pfeiltasten)**: vor- bzw. nachfolgende Zelle fokussieren.\n", " * **a/b**: vor- bzw. nach der fokussierten Zelle eine leere Zelle einfügen\n", " * **dd**: fokussierte Zelle löschen\n", " * **z**: Zellenlöschung rückgängig machen.\n", " * **h**: Hilfe zu allen Modii\n", " * **Ctrl-s**: Speichern\n", " * **Return**: aktivierung des Editiermodus.\n", " * Zelltypen festlegen:\n", " * **y** Python Codezelle\n", " * **1**, **2**, ... Überschriften, Level 1, 2, ...\n", " * **m** [Markdown](http://daringfireball.net/projects/markdown/syntax) (auch mit HTML)\n", "\n", "* **Editiermodus**: Diese dient der Bearbeitung des Inhalts einer ausgewählten Zelle\n", "\n", " * **Tab**: \n", " * ohne Markierung: wenn möglich, automatisches Vervollständigen.\n", " * mit Markierung: Einrücken nach rechts, mit **Shift-Tab** nach links.\n", " * **Shift+Return**: Auswertung der Zelle und vorrücken zur nächsten\n", " * **Ctrl+Return**: Auswerten der Zelle - aber ohne vorrücken\n", " * **Alt+Return**: Auswerten der Zelle und einfügen einer neuen leeren Zelle danach\n", " * **ESC**: Rückkehr in den Kommandomodus.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Autovervollständigung:\n", "\n", "Definiere die Variable `donaudampfschiffahrtsgesellschaft`, und anschließend tippe `donaud[TAB]` und beachte, was passiert." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "donaudampfschiffahrtsgesellschaft = 1" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NameError", "evalue": "name 'donaud' is not defined", "output_type": "error", "traceback": [ "\u001b[1;31m\u001b[0m", "\u001b[1;31mNameError\u001b[0mTraceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mdonaud\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mNameError\u001b[0m: name 'donaud' is not defined" ] } ], "source": [ "donaud" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dies ist insbesondere für objektorientie Programmierung interessant,\n", "da hier nach dem Objekt (\"*Subjekt*\"), durch einen Punkt getrennt, das Attribut (\"*Objekt*\") oder die Methode (\"*Verb*\") angeführt wird.\n", "\n", "*Beispiel*: Methoden und Attribute einer Liste:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "l = [\"Affe\", \"Hund\", \"Katze\"]" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "ename": "SyntaxError", "evalue": "invalid syntax (, line 1)", "output_type": "error", "traceback": [ "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m1\u001b[0m\n\u001b[1;33m l.\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" ] } ], "source": [ "l." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ist `l` definiert, liefert ein Druck auf die Tabulatortaste wenn der Cursor gleich nach `l.` steht, dies:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import Image\n", "from os.path import join\n", "Image(filename = join(\"res\", \"ipython-tabcompletion.png\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hilfe\n", "\n", "Entweder mit `help(...)` oder mit nachgestelltem `?`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "zu einem Befehl" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "help(list)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "zu einer Objektinstanz, mittels der jeweiligen Variablen" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "l = [2, 3]\n", "l?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "zu einer Methode einer Objektinstanz" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [], "source": [ "l.reverse?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "oder" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on built-in function count:\n", "\n", "count(...) method of builtins.list instance\n", " L.count(value) -> integer -- return number of occurrences of value\n", "\n" ] } ], "source": [ "help(l.count)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "zu einem ganzen Modul" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on module math:\n", "\n", "NAME\n", " math\n", "\n", "MODULE REFERENCE\n", " http://docs.python.org/3.5/library/math\n", " \n", " The following documentation is automatically generated from the Python\n", " source files. It may be incomplete, incorrect or include features that\n", " are considered implementation detail and may vary between Python\n", " implementations. When in doubt, consult the module reference at the\n", " location listed above.\n", "\n", "DESCRIPTION\n", " This module is always available. It provides access to the\n", " mathematical functions defined by the C standard.\n", "\n", "FUNCTIONS\n", " acos(...)\n", " acos(x)\n", " \n", " Return the arc cosine (measured in radians) of x.\n", " \n", " acosh(...)\n", " acosh(x)\n", " \n", " Return the inverse hyperbolic cosine of x.\n", " \n", " asin(...)\n", " asin(x)\n", " \n", " Return the arc sine (measured in radians) of x.\n", " \n", " asinh(...)\n", " asinh(x)\n", " \n", " Return the inverse hyperbolic sine of x.\n", " \n", " atan(...)\n", " atan(x)\n", " \n", " Return the arc tangent (measured in radians) of x.\n", " \n", " atan2(...)\n", " atan2(y, x)\n", " \n", " Return the arc tangent (measured in radians) of y/x.\n", " Unlike atan(y/x), the signs of both x and y are considered.\n", " \n", " atanh(...)\n", " atanh(x)\n", " \n", " Return the inverse hyperbolic tangent of x.\n", " \n", " ceil(...)\n", " ceil(x)\n", " \n", " Return the ceiling of x as an int.\n", " This is the smallest integral value >= x.\n", " \n", " copysign(...)\n", " copysign(x, y)\n", " \n", " Return a float with the magnitude (absolute value) of x but the sign \n", " of y. On platforms that support signed zeros, copysign(1.0, -0.0) \n", " returns -1.0.\n", " \n", " cos(...)\n", " cos(x)\n", " \n", " Return the cosine of x (measured in radians).\n", " \n", " cosh(...)\n", " cosh(x)\n", " \n", " Return the hyperbolic cosine of x.\n", " \n", " degrees(...)\n", " degrees(x)\n", " \n", " Convert angle x from radians to degrees.\n", " \n", " erf(...)\n", " erf(x)\n", " \n", " Error function at x.\n", " \n", " erfc(...)\n", " erfc(x)\n", " \n", " Complementary error function at x.\n", " \n", " exp(...)\n", " exp(x)\n", " \n", " Return e raised to the power of x.\n", " \n", " expm1(...)\n", " expm1(x)\n", " \n", " Return exp(x)-1.\n", " This function avoids the loss of precision involved in the direct evaluation of exp(x)-1 for small x.\n", " \n", " fabs(...)\n", " fabs(x)\n", " \n", " Return the absolute value of the float x.\n", " \n", " factorial(...)\n", " factorial(x) -> Integral\n", " \n", " Find x!. Raise a ValueError if x is negative or non-integral.\n", " \n", " floor(...)\n", " floor(x)\n", " \n", " Return the floor of x as an int.\n", " This is the largest integral value <= x.\n", " \n", " fmod(...)\n", " fmod(x, y)\n", " \n", " Return fmod(x, y), according to platform C. x % y may differ.\n", " \n", " frexp(...)\n", " frexp(x)\n", " \n", " Return the mantissa and exponent of x, as pair (m, e).\n", " m is a float and e is an int, such that x = m * 2.**e.\n", " If x is 0, m and e are both 0. Else 0.5 <= abs(m) < 1.0.\n", " \n", " fsum(...)\n", " fsum(iterable)\n", " \n", " Return an accurate floating point sum of values in the iterable.\n", " Assumes IEEE-754 floating point arithmetic.\n", " \n", " gamma(...)\n", " gamma(x)\n", " \n", " Gamma function at x.\n", " \n", " gcd(...)\n", " gcd(x, y) -> int\n", " greatest common divisor of x and y\n", " \n", " hypot(...)\n", " hypot(x, y)\n", " \n", " Return the Euclidean distance, sqrt(x*x + y*y).\n", " \n", " isclose(...)\n", " is_close(a, b, *, rel_tol=1e-09, abs_tol=0.0) -> bool\n", " \n", " Determine whether two floating point numbers are close in value.\n", " \n", " rel_tol\n", " maximum difference for being considered \"close\", relative to the\n", " magnitude of the input values\n", " abs_tol\n", " maximum difference for being considered \"close\", regardless of the\n", " magnitude of the input values\n", " \n", " Return True if a is close in value to b, and False otherwise.\n", " \n", " For the values to be considered close, the difference between them\n", " must be smaller than at least one of the tolerances.\n", " \n", " -inf, inf and NaN behave similarly to the IEEE 754 Standard. That\n", " is, NaN is not close to anything, even itself. inf and -inf are\n", " only close to themselves.\n", " \n", " isfinite(...)\n", " isfinite(x) -> bool\n", " \n", " Return True if x is neither an infinity nor a NaN, and False otherwise.\n", " \n", " isinf(...)\n", " isinf(x) -> bool\n", " \n", " Return True if x is a positive or negative infinity, and False otherwise.\n", " \n", " isnan(...)\n", " isnan(x) -> bool\n", " \n", " Return True if x is a NaN (not a number), and False otherwise.\n", " \n", " ldexp(...)\n", " ldexp(x, i)\n", " \n", " Return x * (2**i).\n", " \n", " lgamma(...)\n", " lgamma(x)\n", " \n", " Natural logarithm of absolute value of Gamma function at x.\n", " \n", " log(...)\n", " log(x[, base])\n", " \n", " Return the logarithm of x to the given base.\n", " If the base not specified, returns the natural logarithm (base e) of x.\n", " \n", " log10(...)\n", " log10(x)\n", " \n", " Return the base 10 logarithm of x.\n", " \n", " log1p(...)\n", " log1p(x)\n", " \n", " Return the natural logarithm of 1+x (base e).\n", " The result is computed in a way which is accurate for x near zero.\n", " \n", " log2(...)\n", " log2(x)\n", " \n", " Return the base 2 logarithm of x.\n", " \n", " modf(...)\n", " modf(x)\n", " \n", " Return the fractional and integer parts of x. Both results carry the sign\n", " of x and are floats.\n", " \n", " pow(...)\n", " pow(x, y)\n", " \n", " Return x**y (x to the power of y).\n", " \n", " radians(...)\n", " radians(x)\n", " \n", " Convert angle x from degrees to radians.\n", " \n", " sin(...)\n", " sin(x)\n", " \n", " Return the sine of x (measured in radians).\n", " \n", " sinh(...)\n", " sinh(x)\n", " \n", " Return the hyperbolic sine of x.\n", " \n", " sqrt(...)\n", " sqrt(x)\n", " \n", " Return the square root of x.\n", " \n", " tan(...)\n", " tan(x)\n", " \n", " Return the tangent of x (measured in radians).\n", " \n", " tanh(...)\n", " tanh(x)\n", " \n", " Return the hyperbolic tangent of x.\n", " \n", " trunc(...)\n", " trunc(x:Real) -> Integral\n", " \n", " Truncates x to the nearest Integral toward 0. Uses the __trunc__ magic method.\n", "\n", "DATA\n", " e = 2.718281828459045\n", " inf = inf\n", " nan = nan\n", " pi = 3.141592653589793\n", "\n", "FILE\n", " /projects/anaconda3/lib/python3.5/lib-dynload/math.cpython-35m-x86_64-linux-gnu.so\n", "\n", "\n" ] } ], "source": [ "import math\n", "help(math)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Global State\n", "\n", "Das Auswerten der Zellen, und insbesondere das zuweisen von Werten an Variablen, ändert den globalen Status.\n", "Wie schon erwähnt, ist die Reihenfolge und der Code der jeweils ausgeführten Zellen relevant -- nicht deren Position oder Existenz.\n", "Mit `%whos` kann man sich eine Übersicht über alle aktuellen Variablenwerte verschaffen:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "x = 42\n", "y = 2 * x" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Variable Type Data/Info\n", "--------------------------------\n", "Image type \n", "join function \n", "l list n=2\n", "math module 35m-x86_64-linux-gnu.so'>\n", "x int 42\n", "y int 84\n" ] } ], "source": [ "%whos" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Der -Button\n", "startet den Kernel neu und löscht damit alle Variablen und geladenen Module." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Zelltypen: Code-, Text- und Überschriftenzellen\n", "\n", "Nebst den Codezellen gibt es auch Zellen die Fließtext oder Überschriften beinhalten können.\n", "Dies lässt sich für die aktuell gewählte Zelle in dem Dropdownmenü neben dem Reload-Button einstellen.\n", "\n", "Die Formatierung ist hierbei vereinfachtes [Markdown](http://daringfireball.net/projects/markdown/syntax), \n", "also insbesondere Textauszeichnungen wie: `*wort*`, `_wort_`, `**wort**` oder `[link text](http://url/)`. Überschriften werden durch ein, zwei oder drei `#` am Zeilenbeginn signalisiert.\n", "\n", "Um Programmcode anzugeben, ohne dass er ausgeführt wird, setzt man ihn in Markdown-Zellen unter verkehrte einfache Anführungszeichen. Mehrzeiliger Code ist zwischen ``` einzufügen." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Beispiel\n", "\n", "Das ist\n", "\n", "* *fetter*\n", "* _kursiver_ Text mit \n", "* `c = od(e)`\n", "\n", "in einer Aufzählung.\n", "\n", "Mehrzeilig mit Python Syntaxhighlighting:\n", "\n", "```python\n", "def f(x):\n", " a = min(0, x)\n", " b = 2 * a + x\n", " return a * b\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Magic Commands\n", "\n", "Zellen können auch \"magic commands\" beinhalten, welche entweder mit \"`%`\" oder \"`%%`\" beginnen.\n", "\n", "* `%` bezieht sich nur auf die aktuelle Zeile und steht am Beginn.\n", "* `%%` steht zu Beginn der ganzen Zelle und bezieht sich auf die ganze Zelle.\n", "\n", "Das sind Befehle, welche kein Python sind, sondern nur für IPython und das Notebook bestimmt sind.\n", "\n", "Das weiter oben angeführte Beispiel \"`%whos`\" ist so ein magic command.\n", "Andere nützliche sind:\n", "\n", "* `%timeit` bzw. `%%time`: um die Ausführungszeit eines Befehls bzw. einer ganzen zu Messen.\n", "* `%reset`: Löschen von gesetzten Variablen\n", "* `%writefile `: um den Inhalt der Zelle in die angegebene Datei zu speichern.\n", "* `%cat`: Auslesen einer Textdatei\n", "\n", "Ein **\"`!`\"** Rufzeichen führt den nachgestellten Code im Terminal des Systems aus.\n", "Damit lassen sich lokale Operationen im Dateisystem oder kleine Utilites bequem vom IPython Notebook aus steuern." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Neben diesen gibt es auch noch eine reihe anderer.\n", "Der Magic Befehl \"`%lsmagics`\" listet alle auf." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "application/json": { "cell": { "!": "OSMagics", "HTML": "Other", "SVG": "Other", "bash": "Other", "capture": "ExecutionMagics", "debug": "ExecutionMagics", "file": "Other", "html": "DisplayMagics", "javascript": "DisplayMagics", "latex": "DisplayMagics", "perl": "Other", "prun": "ExecutionMagics", "pypy": "Other", "python": "Other", "python2": "Other", "python3": "Other", "ruby": "Other", "script": "ScriptMagics", "sh": "Other", "svg": "DisplayMagics", "sx": "OSMagics", "system": "OSMagics", "time": "ExecutionMagics", "timeit": "ExecutionMagics", "writefile": "OSMagics" }, "line": { "alias": "OSMagics", "alias_magic": "BasicMagics", "autocall": "AutoMagics", "automagic": "AutoMagics", "autosave": "KernelMagics", "bookmark": "OSMagics", "cat": "Other", "cd": "OSMagics", "clear": "KernelMagics", "colors": "BasicMagics", "config": "ConfigMagics", "connect_info": "KernelMagics", "cp": "Other", "debug": "ExecutionMagics", "dhist": "OSMagics", "dirs": "OSMagics", "doctest_mode": "BasicMagics", "ed": "Other", "edit": "KernelMagics", "env": "OSMagics", "gui": "BasicMagics", "hist": "Other", "history": "HistoryMagics", "install_default_config": "DeprecatedMagics", "install_ext": "ExtensionMagics", "install_profiles": "DeprecatedMagics", "killbgscripts": "ScriptMagics", "ldir": "Other", "less": "KernelMagics", "lf": "Other", "lk": "Other", "ll": "Other", "load": "CodeMagics", "load_ext": "ExtensionMagics", "loadpy": "CodeMagics", "logoff": "LoggingMagics", "logon": "LoggingMagics", "logstart": "LoggingMagics", "logstate": "LoggingMagics", "logstop": "LoggingMagics", "ls": "Other", "lsmagic": "BasicMagics", "lx": "Other", "macro": "ExecutionMagics", "magic": "BasicMagics", "man": "KernelMagics", "matplotlib": "PylabMagics", "mkdir": "Other", "more": "KernelMagics", "mv": "Other", "notebook": "BasicMagics", "page": "BasicMagics", "pastebin": "CodeMagics", "pdb": "ExecutionMagics", "pdef": "NamespaceMagics", "pdoc": "NamespaceMagics", "pfile": "NamespaceMagics", "pinfo": "NamespaceMagics", "pinfo2": "NamespaceMagics", "popd": "OSMagics", "pprint": "BasicMagics", "precision": "BasicMagics", "profile": "BasicMagics", "prun": "ExecutionMagics", "psearch": "NamespaceMagics", "psource": "NamespaceMagics", "pushd": "OSMagics", "pwd": "OSMagics", "pycat": "OSMagics", "pylab": "PylabMagics", "qtconsole": "KernelMagics", "quickref": "BasicMagics", "recall": "HistoryMagics", "rehashx": "OSMagics", "reload_ext": "ExtensionMagics", "rep": "Other", "rerun": "HistoryMagics", "reset": "NamespaceMagics", "reset_selective": "NamespaceMagics", "rm": "Other", "rmdir": "Other", "run": "ExecutionMagics", "save": "CodeMagics", "sc": "OSMagics", "set_env": "OSMagics", "store": "StoreMagics", "sx": "OSMagics", "system": "OSMagics", "tb": "ExecutionMagics", "time": "ExecutionMagics", "timeit": "ExecutionMagics", "unalias": "OSMagics", "unload_ext": "ExtensionMagics", "who": "NamespaceMagics", "who_ls": "NamespaceMagics", "whos": "NamespaceMagics", "xdel": "NamespaceMagics", "xmode": "BasicMagics" } }, "text/plain": [ "Available line magics:\n", "%alias %alias_magic %autocall %automagic %autosave %bookmark %cat %cd %clear %colors %config %connect_info %cp %debug %dhist %dirs %doctest_mode %ed %edit %env %gui %hist %history %install_default_config %install_ext %install_profiles %killbgscripts %ldir %less %lf %lk %ll %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro %magic %man %matplotlib %mkdir %more %mv %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %popd %pprint %precision %profile %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall %rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode\n", "\n", "Available cell magics:\n", "%%! %%HTML %%SVG %%bash %%capture %%debug %%file %%html %%javascript %%latex %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile\n", "\n", "Automagic is ON, % prefix IS NOT needed for line magics." ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%lsmagic" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Beispiel: Benchmark eines Funkionsaufrufs." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 41.91 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "10000000 loops, best of 3: 144 ns per loop\n" ] } ], "source": [ "import math\n", "%timeit math.sqrt(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Terminal\n", "\n", "Das `!` ruft den nachgestellten Befehl in der Kommandozeile auf." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2-0-konzepte.ipynb\r\n", "2-1-ausdruecke_und_variablen.ipynb\r\n", "2-2-syntax-errors.ipynb\r\n", "2-3-funktionen.ipynb\r\n", "2-4-kontrollstrukturen.ipynb\r\n", "2-5-datenstrukturen.ipynb\r\n", "2-6-datentypen_und_objekte.ipynb\r\n", "2-7-modularisierung.ipynb\r\n" ] } ], "source": [ "! ls -1 2-?-*.ipynb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Die Rückgabe so eines Terminalkommandos nach einem Rufzeichen kann auch in eine lokale Variable gespeichert werden:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'2016-05-21 17:53'" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "datum = ! date \"+%Y-%m-%d %H:%M\"\n", "datum[0]" ] } ], "metadata": { "kernelspec": { "display_name": "Anaconda (Python 3)", "language": "python", "name": "anaconda3" }, "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.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }