{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Einführung Jupyter-Notebooks\n", "\n", "In diesem Notebook wollen wir Sie mit den Grundlagen und Aufbau des Jupyter-Servers und des Jupyter-Notebooks vertraut machen. Bitte lesen Sie die folgenden Abschnitte aufmerksam durch und vervollständigen Sie die Installation des Kursmaterials am Ende des Notebooks.\n", "\n", "## Jupyter-Notebooks ausführen\n", "\n", "In diesem Abschnitt wollen wir Ihnen erklären, wie Sie auf den Jupyter-Server zugreifen können.\n", "\n", "### ZDV JupyterHub\n", "\n", "Sie sollten den durch die ZDV angebotenen JupyterHub (https://jupyterhub.zdv.uni-mainz.de), auf dem Sie sich gerade befinden, zur Bearbeitung Ihrer Notebooks verwenden.\n", "\n", "Um Zugang zum JupyterHub zu erhalten, müssen Sie sich zunächst mit Ihrem Uni-Account anmelden. Danach erscheint eine Auswahlseite, auf der Sie die Art der Jupyter Umgebung auswählen. Für das Praktikum ist die Standardumgebung die richtige Wahl, s. Bild unten.\n", "\n", "![images/Screenshot_ZDV_JupyterHub.png](images/Screenshot_ZDV_JupyterHub.png)\n", "\n", "Klicken Sie auf die Schaltfläche **Spawn**, dann öffnet sich das Notebook Dashboard.\n", "\n", "### Lokale Installation\n", "\n", "Sofern Sie nach diesem Kurs lieber mit einer lokalen Version von Jupyter arbeiten möchten, empfehlen wir Ihnen die Installation via Anaconda. Folgen Sie hierfür dem folgenden [Link](https://www.anaconda.com/distribution/). Wählen Sie zunächst das von Ihnen verwendete Betriebssystem aus und installieren Sie die letzte Python Version (64-Bit). Bei diesem Python-Kurs wird eine lokale Installation nicht gebraucht.\n", "\n", "## Ein neues Notebook-Dokument anlegen\n", "\n", "Ein neues Notebook kann jederzeit erstellt werden, entweder über das Dashboard oder über die Menüoption File ‣ Neu aus einem aktiven Notebook heraus. Das neue Notebook wird im selben Verzeichnis erstellt und öffnet sich in einem neuen Browser-Tab. Es wird auch als neuer Eintrag in der Notebookliste auf dem Dashboard angezeigt.\n", "\n", "![](https://jupyter-notebook.readthedocs.io/en/latest/_images/new-notebook.gif)\n", "\n", "## Notebooks öffnen\n", "\n", "Ein offenes Notebook hat genau eine interaktive Sitzung, die mit einem Kernel verbunden ist, der den vom Benutzer gesendeten Code ausführt und die Ergebnisse zurückgibt. Dieser Kernel bleibt aktiv, wenn das Webbrowser-Fenster geschlossen ist, und das erneute Öffnen desselben Notebooks über das Dashboard stellt die Verbindung zwischen der Webanwendung und demselben Kernel wieder her.\n", "\n", "## Die Notebook-Benutzeroberfläche\n", "\n", "Wenn Sie ein neues Notebook-Dokument erstellen, werden Ihnen der Name des Notebooks, eine Menüleiste, eine Symbolleiste und eine leere Codezelle angezeigt.\n", "\n", "![](https://jupyter-notebook.readthedocs.io/en/latest/_images/blank-notebook-ui.png)\n", "\n", "**Notebook-Name**: Der Name, der oben auf der Seite neben dem Jupyter-Logo angezeigt wird, spiegelt den Namen der .ipynb-Datei wider. Wenn Sie auf den Namen des Notebooks klicken, öffnet sich ein Dialog, in dem Sie ihn umbenennen können. Wenn Sie also ein Notebook im Browser von \"Untitled0\" in \"My first notebook\" umbenennen, wird die Datei Untitled0.ipynb in My first notebook.ipynb umbenannt.\n", "\n", "**Menüleiste**: Die Menüleiste zeigt verschiedene Optionen, mit denen Sie die Funktionsweise des Notebooks beeinflussen können.\n", "\n", "**Symbolleiste**: Die Symbolleiste bietet eine schnelle Möglichkeit, die am häufigsten verwendeten Operationen innerhalb des Notebooks durchzuführen, indem Sie auf ein Symbol klicken.\n", "\n", "**Codezelle**: Der Standardtyp der Zelle; lesen Sie weiter, um eine Erklärung der Zellen zu erhalten.\n", "\n", "## Aufbau eines Notebook-Dokuments\n", "\n", "Das Notebook besteht aus einer Folge von Zellen. Eine Zelle ist ein mehrzeiliges Texteingabefeld, dessen Inhalt mit **Shift + Enter** oder durch Anklicken der Schaltfläche \"Play\" in der Symbolleiste oder Cell, Run in der Menüleiste ausgeführt werden kann. Das Ausführungsverhalten einer Zelle wird durch den Zellentyp bestimmt. Es gibt drei Arten von Zellen: Codezellen, Abschriftenzellen und Rohzellen. Jede Zelle beginnt damit, eine Codezelle zu sein, aber ihr Typ kann über ein Dropdown-Menü in der Symbolleiste (das zunächst \"Code\" sein wird) oder über Tastenkombinationen geändert werden.\n", "\n", "### Code-Zellen\n", "\n", "Eine Codezelle ermöglicht es Ihnen, neuen Code zu bearbeiten und zu schreiben, mit voller Syntaxhervorhebung und Vervollständigung der Registerkarte. Die von Ihnen verwendete Programmiersprache hängt vom Kernel ab, und der Standardkernel (IPython) führt Python-Code aus.\n", "\n", "Wenn eine Codezelle ausgeführt wird, wird der darin enthaltene Code an den dem Notebook zugeordneten Kernel gesendet. Die Ergebnisse, die von dieser Berechnung zurückgegeben werden, werden dann im Notebook als Ausgabe der Zelle angezeigt. Zum Beispiel beim Berechnen von: " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2020-04-26T08:41:45.375773Z", "start_time": "2020-04-26T08:41:45.336524Z" } }, "outputs": [], "source": [ "1 + 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Um diese Code-Zelle auszuführen, müssen Sie die jeweilige Zelle anwählen und die Tastenkombination: **STRG + ENTER** oder **SHIFT + ENTER** verwenden. Das Ergebnis wird direkt unterhalb der Zelle angezeigt." ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2020-04-26T08:38:43.464348Z", "start_time": "2020-04-26T08:38:43.414416Z" } }, "source": [ "Die Ausgabe beschränkt sich nicht nur auf Text, sondern es sind auch viele andere mögliche Ausgabeformen möglich, darunter matplotlib-Figuren und HTML-Tabellen. \n", "\n", "### Markdown-Zellen\n", "\n", "Sie können den Berechnungsprozess versiert dokumentieren, indem Sie beschreibenden Text mit Code abwechseln und Rich Text verwenden. In IPython wird dies durch die Markierung von Text mit der Markdown-Sprache erreicht. Die entsprechenden Zellen werden als Markdown-Zellen bezeichnet. Die Markdown-Sprache bietet eine einfache Möglichkeit, dieses Textmarkup durchzuführen, d.h. festzulegen, welche Teile des Textes hervorgehoben werden sollen (Kursivschrift), Fett, Formularlisten usw.\n", "\n", "Innerhalb von Markdown-Zellen können Sie mathematische Ausdrücke auch auf einfache Weise mit der Standard-LaTeX-Notation einbinden: `$...$` für Inline-Mathematik und `$$...$$` für angezeigte Mathematik. Wenn die Markdown-Zelle ausgeführt wird, werden die LaTeX-Abschnitte automatisch in der HTML-Ausgabe als Gleichungen mit hochwertiger Typografie dargestellt.\n", "\n", "Es existiert also eine ganze Bandbreite an Formatierungsmöglichkeiten. Hier einige Beispiele:\n", "\n", "**Überschriften:**\n", "\n", "# Level 1.\n", "## Level 2.\n", "### Level 3.\n", "\n", "**Aufzählungen: **\n", "\n", "* Mit normalen\n", "* Aufzählungspunkten\n", " 1. oder \n", " 2. Numerierungen\n", " * Auf unterschiedlichen\n", " 1. Ebenen\n", "\n", "**Schriftarten:**\n", "\n", "**Fett**\n", "\n", "*Italic (Kursive)*\n", "\n", "`True type`\n", "\n", "bzw. Syntax highlighting\n", "\n", "```python \n", "def EasyFunc(x):\n", " return 2 * x\n", "```\n", "\n", "**Formeln mithilfe des LaTeX-Syntax:**\n", "\n", "$ f(x) = \\int\\limits_0^\\infty e^{-x} \\, dx $\n", "\n", "(LaTeX werden Sie verstärkt im F-Praktikum kennenlernen)\n", "\n", "\n", "**Bilder:**\n", "\n", "![The Python logo](https://www.python.org/static/community_logos/python-powered-w-200x80.png \"Das Python Logo\")\n", "\n", "\n", "Darüber hinaus bietet uns das Jupyter Notebook noch diverse weitere Optionen an, welche unseren harten Alltag vereinfachen. Bevor wir hier jedoch mehr ins Detail gehen, sollten wir die Installation des Kursmaterials abschließen. Hierzu führen Sie die nachfolgende Zelle aus:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2020-04-26T08:54:42.827020Z", "start_time": "2020-04-26T08:54:33.726074Z" } }, "outputs": [], "source": [ "%run custom_set_up.py" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hierdurch werden einige Styleoptionen installiert, welche die von Ihnen zu bearbeitenden Aufgaben optisch hervorheben. Nachdem Sie die Optionen installiert haben müssen Sie den Jupyter-Server neustarten. Gehen Sie hierfür wie folgt vor (**Lesen Sie zuerst die ganze Anweisung!**):\n", "\n", "1. Speicheren Sie das Notebook ab, in dem Sie auf das kleine Disketensmbol in der obigen Menüleiste klickt.\n", "2. Anschließend müssen wir das aktuelle Notebook schließen. Gehen Sie hierfür auf **File** --> **Close and Halt**. Jetzt müssen wir nur noch unseren Server neustarten. Klicken Sie hierfür in der oberen rechten Ecke auf die Schaltfläche **Control Panel** und anschließend auf die Fläche **Stop My Server**.\n", "\n", "![images/Screenshot_ZDV_JupyterHub.png](images/JupyterServerNeustarten.png)\n", "\n", "3. Anschließend können Sie mit der Schaltfläche **Start My Server** den Jupyter-Server neustarten. Wählen Sie wieder das **default environment** aus und spawnen Sie den Server.\n", "\n", "![images/Screenshot_ZDV_JupyterHub.png](images/Screenshot_ZDV_JupyterHub.png)\n", "4. Öfnnen Sie nun das Notebook **Aufgaben_zur_Vorbereitung_von_Kapitel_1** und bearbeiten Sie dieses als Vorbereitung für den Versuchstag. Sofern die Installation der Styleoptionen erfolgreich war sollten ihnen die Aufgaben wie folgt dargestellt werden:\n", "\n", "![images/Screenshot_ZDV_JupyterHub.png](images/Aufgaben_Style_Beispiel.png)\n", "\n", "Wird Jupyterlab statt Jupyter genutzt, dann kann es sein, dass die besondere Formatierung nicht funktioniert. Dies ist kein Problem, da es sich dabei um eine optische Verbesserung handelt." ] } ], "metadata": { "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.7" } }, "nbformat": 4, "nbformat_minor": 4 }