01 Einführung in Python und Jupyter Notebooks

Daidalos 2024 (https://daidalos-projekt.de)
---

01 Einführung#

1. Jupyter Notebooks#


“The Jupyter Notebook is the original web application for creating and sharing computational documents. It offers a simple, streamlined, document-centric experience.” Project Jupyter, https://jupyter.org/

Ein Jupyter Notebook besteht aus Zellen der Typen Code und Markdown (Text) sowie zwei weiteren, zurzeit nicht wichtigen Typen (Raw NBConvert, Heading), die man durch Anklicken in der Auswahlliste im Menü ändern kann.

Zellen mit Code sind ausführbar. Dazu mehr in den nachfolgenden Jupyter Notebooks.

2. Python#


Der aussführbare Code in den Zellen ist in der Programmiersprache Python geschrieben.
Python (https://www.python.org/) wurde mit dem Ziel größter Einfachheit und Übersichtlichkeit entworfen. Dies wird vor allem dadurch erreicht,

  • dass die Sprache mit relativ wenigen Schlüsselwörtern auskommt,

  • dass die Syntax reduziert ist und

  • dass die Syntax auf Übersichtlichkeit durch Einrückungen setzt.

Python-basierte Skripte lassen sich deutlich knapper formulieren als in anderen Programmiersprachen.

3. Benutzungshinweise zum Umgang mit einem Notebook#


Arbeit mit Zellen#


Neue Zelle erstellen#

im Menü: [+]

alternativ Tasten nacheinander drücken:
[esc] & [a] erstellt eine neue Zelle über der aktiven Zelle
[esc] & [b] erstellt eine Zelle unter unter der aktiven Zelle

Einzelne Zellen ausführen / bestätigen#

im Menü: [►]

Tasten gleichzeitig drücken: [shift] & [Enter]

Mehrere Zeilen oder das gesamte Notebook ausführen#

Alle ausführen: in der Menüzeile [Run]->[Run All Cells] auswählen

Alternativ:
Alle Zellen oberhalb der gerade aktiven Zelle ausführen: [Run]->[Run All Above Selected Cell] auswählen
Alle Zellen unterhalb der gerade aktiven Zelle ausführen: [Run]->[Run All Below Selected Cell] auswählen

Änderungen rückgängig machen#

Um Änderungen in einer Zelle rückgängig zu machen, drücken Sie [strg/cmd]+[z].

Um Änderungen in einer Zelle wiederherzustellen, drücken Sie [strg/cmd]+[y].

Zellen ein- und ausblenden#

Ist eine Zelle aktiv, erscheint links daneben ein blauer Balken. Ein Klick auf den Balken blendet die Zelle aus oder wieder ein.
Hinweis: Bei Code-Zellen können 2 blaue Balken angezeigt werden. Der obere blendet den Code ein oder aus, der untere das Ergebnis des Codes.

Arbeit mit Markdown#


Markdown ist nur eine sehr einfache Auszeichnungssprache, d.h. mit ihr kann man die Darstellung von Texten gestalten. Aufgrund ihrer geringen Komplexität gibt es keine vergleichbaren Funktionen wie bei Textverarbeitungsprogrammen.

Markdown-Guide: Basic Syntax https://www.markdownguide.org/basic-syntax/

Zelle auf Markdown einstellen.#

Im Menü: Dropdownmenü anklicken (ganz rechts) -> [Markdown] auswählen

Erstellen von Überschriften#

Überschriften mit #, ## etc. markieren.

# = Überschrift 1. Ordnung, d.h. größte Überschrift, ## = Überschrift 2. Ordnung, also etwas kleiner etc.

Zeilenumbruch#

Wenn eine Zeile umgebrochen, d.h. neu begonnen werden soll, muss im Code eine Leerzeile gesetzt oder die Zeile mit 2 Leerzeichen beendet werden.

Hervorhebungen: fett, kursiv#

Fettung ist mit ** vor und hinter dem hervorzuhebenden Wort oder Abschnitt möglich. Bsp.: Markdown ist eine einfache Auszeichnungssprache.

Kursivsetzung ist ebenfalls möglich, indem man nur * vor und hinter der Textstelle setzt. Bsp.: Kursiv heißt im Englischen italic.

Arbeit mit Python-Code#


Variablen#

Variablen können wie in der Mathematik für ganz unterschiedliche Inhalte stehen:

x = 1
y = -4.5
name = 'dAIdalos'

Sie haben einen Namen (x / y / name) und einen Inhalt (1 / -4.5 / dAIdalos). Eine Variable ist quasi eine Schublade mit einer Aufschrift, die einen festgelegten Einsatz hat, der nur genau ein (!) Muster (Inhalt) in der Schublade zulässt. Dieses Muster nennt man Datentyp. Er hat einen bestimmten Wert (type).

Namen#

Die Namen von Variablen müssen mit einem Buchstaben beginnen und dürfen keine Sonderzeichen enthalten - außer dem Unterstrich _, der anstelle eines Leerzeichens verwendet werden kann. Auch Umlaute und der Buchstabe ß sollten vermieden werden.

Einmal zu Beginn angelegte Variablen können auch viel später im Code noch genutzt werden (globale Variablen).

In einem Jupyter Notebook müssen Sie den Codeabschnitt mit der Variable einmal vorher ausgeführt (initialisiert) haben, bevor diese Variable weiter unten in anderen Codeabschnitten verwendet werden kann.

Datentypen#

Datentypen können zum Beispiel Zahlen, Sequenzen oder Wahrheitswerte sein. Heute interessieren uns nur wenige Datentypen:

Zeichenketten

  • String (str): beliebige Zeichenanreihungen, z.B. ‘Hallo’, ‘12x3’, ‘Περσέων μέν νυν οἱ λόγιοι Φοίνικας αἰτίους φασὶ γενέσθαι τῆς διαφορῆς.’
    Hinweis: Strings müssen immer in Anführungszeichen gesetzt werden. (”…” oder ‘…’)

'Alea iacta est'
'Alea iacta est'

Um Zeichenketten zu speichern müssen sie in Maschinencode überführt werden. Diese Transformation nennt man kodieren.
Es gibt verschiedene Standarts nach denen Zeichenketten kodiert werden können. Im folgenden Notebook verwenden wir UTF-8 (Unicode Transformation Format - 8 bits).

Listen

  • List (list): geordnete Sammlungen von Datentypen, werden in eckige Klammern gesetzt und mittels Komma getrennt

['Alea','iacta','est']
['Alea', 'iacta', 'est']

Code kommentieren#

Wenn der Zelltyp auf Code eingestellt ist, liest Jupyter jeden Text als Code. Wollen Sie also Anmerkungen zum Code machen, müssen Sie Ihren Text auskommentieren. Dazu verwenden Sie #. Alles was auf dieser Zeile hinter # steht, ignoriert der Computer. So lassen sich einzelne Code-Schnipsel sehr gut erklären, damit Sie später noch wissen, was an dieser Stelle im Code geschehen soll.

# das ist ein String
"His Caesar ita respondit: eo sibi minus dubitationis dari [...']"
"His Caesar ita respondit: eo sibi minus dubitationis dari [...']"

Hinweis:
Wird ein Teil der Codelogik hinter eine Raute gesetzt (auskommentiert), wird der Code beim Ausführen der Zelle ignoriert

Funktionen#

Funktionsweise#

In den folgenden Notebooks werden Ihnen Funktionen der Form addieren(a, b) begegnen.

Funktionen sind im Kern Arbeitsanweisungen oder Rezepte.
Hinter einer Funktion steckt eine Funktionsdefinition, die angibt, wie die Variablen (hier: a und b) verarbeitet werden sollen.
Diese Variablen werden beim Ausführen der Funktion durch Werte ersetzt.

def addieren(a, b):
    c = a + b
    return c

Nachdem die Funktion initialisiert wurde (ähnlich einer Variablen), kann sie im Folgenden Code beliebig oft und mit beliebigen Werten aufgerufen werden.

addieren(1, 2)
3

Vordefinierte Funktionen#

Python beinhaltet eine Reihe vordefinierter Funktionen, von denen hier nur wenige relevante vorgestellt werden sollen.

Print#

Die print()-Funktion schreibt die eingegebenen Funktionswerte. Sollen mehrere Werte geschrieben werden, können sie durch Komma getrennt werden.

print('Crassus',1,'Ἀριστοτέλης')
Crassus 1 Ἀριστοτέλης

Methoden#

Bestimmte Funktionen lassen sich auf spezielle Typen von Objekten anwenden. So kann man z.B. mittels der Funktion replace() eine exakte Zeichenkette durch eine andere ersetzen:

"Homer, Odyssey".replace('Odyssey','Ilias')
'Homer, Ilias'

Andere Methoden:

  • .join()

  • .split()

Funktionen, die nur auf bestimmte Objekte anwendbar sind, werden Methoden genannt. Um sie anzuwenden, werden sie mit Hilfe eines Punktes mit dem Objekt verkettet.

Importe#

Obwohl Python mit eingebauten Funktionen ausgeliefert wird, decken diese nur einen Bruchteil dessen ab, was Python zu leisten im Stande ist.
Die meisten Funktionen werden von Programmierern und Forschern geschrieben und in sogenannte Libraries ausgelagert. Diese Pakete werden in einer kollaborativen Community geteilt und können kostenlos heruntergeladen und installiert werden.

Die heute benötigten Pakete sind bereits vorinstalliert, sie müssen aber noch in das Notebook eingeladen werden.
Mittels import können ganze Libraries eingeladen werden:

import warnings

Alternativ kann man spezifizieren, welche Funktionen einer Library man einladen möchte:

from gensim.models import Word2Vec
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[10], line 1
----> 1 from gensim.models import Word2Vec

ModuleNotFoundError: No module named 'gensim'

Nachdem Libraries oder Teile von ihnen importiert wurden, können sie genauso genutzt werden, als stünden sie direkt im Notebook.
Das Importieren initialisiert sie automatisch, sie können also direkt verwendet werden.