mirror of
https://gitlab.rlp.net/pgp/pgp1-python-einfuehrung
synced 2024-11-16 13:48:11 +00:00
211 lines
11 KiB
Text
211 lines
11 KiB
Text
{
|
|
"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 Jupyter Hub\n",
|
|
"\n",
|
|
"Sie können auch den durch die ZDV angebotenen Jupyter Hub (https://jupyterhub.zdv.uni-mainz.de/hub/login) zur Bearbeitung Ihrer Notebooks verwenden. **Falls Sie das Jupyterhub von außerhalb des Uni-Netzwerks erreichen wollen, müssen Sie eine VPN-Verbindung zum Uni-Netzwerk aufbauen, oder über eine Remotedesktop-Verbindung arbeiten.** Wir empfehlen Ihnen letzteres. Eine Erklärung wie Sie eine Remotedesktop-Verbindung aufbauen finden Sie auf den [Seiten der ZDV](https://www.zdv.uni-mainz.de/remotedesktop-arbeiten-am-entfernten-arbeitsplatz/). Sollten Sie das Arbeiten über VPN bevorzugen so finden Sie eine Anleitung für die gebräuchlichsten Betriebssysteme [hier]( https://www.zdv.uni-mainz.de/vpn-netz-zugang-von-ausserhalb-des-campus/). \n",
|
|
"\n",
|
|
"Um Zugang zum Jupyter-Hub 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, wie bei der lokalen Installation, 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 Python Version 3.7 (64-Bit).\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 Celle 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. Möglich wird dies durch MathJax, das eine große Teilmenge der LaTeX-Funktionalität unterstützt. \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 mit Hilfe des Latex-Syntax:**\n",
|
|
"\n",
|
|
"$ f(x) = \\int\\limits_0^\\infty e^{-x} \\, dx $\n",
|
|
"\n",
|
|
"(Latex werdet Sie verstärkt im F-Praktikum kennen lernen)\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 möchten 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 costum_set_up.py"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Hier durch werden einige Styleoptionen installiert welche die von euch zu bearbeiten Aufgaben optisch hervorheben. Nachdem ihr die Optionen installiert habt müsst ihr euer Jupyter-Server neustarten geht hierfür wie folgt vor (**lest erst die ganze Anweisung!**): \n",
|
|
"\n",
|
|
"1. Speichert euer Notebook ab in dem ihr auf das kleine Disketensmbol in der obigen Menüleiste klickt.\n",
|
|
"2. Anschließend müssen wir das aktuelle Notebook schließen. Geht hier fü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 uns 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)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"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.7.6"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|