Fortgeschrittene Themen der Programmierung unter Python

Python-Literatur-Dschungel In dieser Rubrike unseres Tutorials behandeln wir verschiedene fortgeschrittene Themen der Programmierung. So geht es im ersten Kapitel um die Module sys, os und andere, die es uns erleichtern mit dem Betriebssystem zu kommunizieren. Ein Schwerpunkt in diesem Kapitel sind die Standard-Datenströme (stdin, stdout, stderr) und deren Umleitung. Es geht um die Programmierung in einer Abstraktionsschicht über dem Betriebssystem oder zwischen Applikation und Betriebssystem. Unter Systemprogrammierung im engeren Sinne versteht man das Erstellen von Softwarekomponenten, die Teil des Betriebssystems sind.

Python im Zusammenspiel mit der Shell ist das Thema des zweiten Kapitels. Dann geht es um Forking.

Im Zusammenhang mit Threads behandeln wir das thread-Modul sowie das threading-Modul. In einem praktischen Beispiel zeigen wir einen sinnvollen Einsatz von Threads, indem wir mittels Threads IP-Adressen in einem lokalen Netzwerk ermitteln.

Um nächsten Kapitel wird's dann alkoholisch, denn wir programmieren dort ein Skript, dass das beliebte Lied "99 bottles of beer" in Python und in Pipes umsetzt.

Mathematisch wird es in unserem Tutorial über Graphen. Wir bieten sowohl eine Einführung in die Graphentheorie als auch die Implementierung von Graphen in Python.

Auch die theoretische Informatik kommt nicht zu kurz, wie man in unseren Kapiteln über endliche Automaten und Turingmaschinen sich überzeugen kann.

Wenn man gerne mit Arrays und Matrizen effizient und schnell arbeiten will, dann empfiehlt sich auf jeden Falls die Beschäftigung mit dem Modul NumPy von Python. Diesem Thema haben wir sogar mehrere Kapitel gewidmet, wie man auf der linken Seite sehen kann: "NumPy-Modul" und "Matrix-Arithmetik"

XML ist in der modernen Datenverarbeitung nicht mehr als wegzudenken und wird vielerorts als Datenaustauschformat benutzt. Wie sich XML unter Python mittels SAX und DOM verwenden lässt finden Sie auch hier.

Eine Einführung in das Arbeiten mit SQL-Datenbanken zeigt, wie einfach sich die Anbindung von Datenbanken unter Python gestaltet.

Abgerundet wird alles mit einer vollständigen Einführung in die automatische Textklassifikation und einer vollständigen Python-Implementierung.

Wenn Ihnen die oben beschriebenen Themen zu komplex und abgehoben erscheinen, und Sie noch Probleme mit den Grundlagen von Python haben, dann empfehlen wir Ihnen einen Blick in die folgende Liste aus unserem Grundlagenkurs:

Neuigkeiten

März 2024:
Neue Kapitel:

Überarbeitete Kapitel:

Februar 2024:
Die Kapitel "Erstellen von unveränderlichen Klassen in Python" und "dataclass Datenklassen in Python" wurden überarbeitet und um eine Übungsaufgabe erweitert.

Januar 2024:
Das neue Jahr hat kaum begonnen, und wir haben schon einen neuen Kurs-Inhalt: In dem Kapitel "Komposition von Funktionen" geht es wie der Name vermuten lässt um die Komposition oder Verknüpfung von Funktionen in Python.

Dezember 2023:
Das Tutorial zu objektorientierter Programmierung (OOP) wurde um zwei neue Seiten erweitert: Erstellen von unveränderlichen Klassen in Python" und Sie können nun lernen, wie man mit dataclass Datenklassen in Python" einfach erzeugt.

November 2023:
  • Neues aus der Python-Küche: Currying mit Python
  • Nun haben wir auch das Kapitel über for-Schleifen grundlegend überarbeitet und ebenfalls um 7 neue Aufgaben mit Musterlösungen erweitert.
Oktober 2023:
Das Kapitel über while-Schleifen wurde überarbeitet und um 7 neue Aufgaben mit Musterlösungen erweitert.

Juni 2023:
Nach den Kursen über Bilder und Videos mit Python haben wir uns im Juni wieder grundsätzlichen Python-Themen aus der OOP und funktionalen Programmierung zugewendet:
  • In unserem Kurs "OOP" haben wir ein neues Kapitel hinzugefügt. Es handelt sich um ein umfangreiches Beispiel einer Python-Klasse - Polynom-Klasse, die den Umgang mit Polynomen besonders leicht macht und die besondere Eleganz von Python und der Operator-Überladung eindringlich demonstriert
  • Das Kapitel über Dekorateure haben wir verbessert und um weitere Beispiele von Dekorateuren ergänzt.
Mai 2023:
Es gibt eine Fortsetzung zum Thema "Python, Bilder und Videos", d.h. eine neue Schulung mit dem Titel "Videos mit beweglichen Objekten" (Bernd Klein)
April 2023:
Wir haben unserem Python-Tutorial mehrere neue Kurse hinzugefügt:
  • In unserer Sektion "Numerisches Python" gibt es zwei neue Kapitel zu Pandas. In beiden geht es um groupby. Eine allgemeine Einführung zur Gruppierung mittels groupby und weitere Beispiele zu diesem Thema
  • Ein weiteres neues Tutorial beschäftigt sich mit umfangreiches Beispiel über das Arbeiten mit Mengen in Python. Hier werden berühmte Romane der Weltliteratur mit Python statistisch analysiert.
  • In einem weiteren neuen Tutorial zeigen wir denjenigen, die an Bildverarbeitung und und Erzeugung von Videos mit Python interessiert sind, die Erzeugung von Videos aus einem oder mehreren Bildern oder Photos.

    Ich habe diese Technik verwendet, um Videos für eine Musikkomposition von mir zu erstellen. Die Videos sind bei YouTube zu finden:

    Die Musik ist in beiden Videos die gleiche. Ein Musikstück für Streichorchester und Solocello. Die Tonspur habe ich mit dem Linux-Programm kdenlive hinzugefügt.

    Weitere Musik-Videos von mir, aber auch Python-Videos, findet man in meinem Channel Bernd Klein. Es werden weitere Python-Videos folgen. Es lohnt sich also zu abonnieren!

März 2023:
Im März habe ich zwei neue Kapitel für den online Python-Kurs fertig gestellt. In dem einem zeige ich, was Walrosse mit Python zu tun haben, d.h. Walross-Operatoren
Im zweiten Kapitel geht geht es auch um ein neues Feature von Python nämlich der Struktureller Musterabgleich (Bernd Klein)
April 2021:
Das Kapitel über Generatoren wurde komplett neu bearbeitet und mit Syntax-Highlighting versehen. (Melisa, Bernd)
März 2021:
Es gibt weitere Fortschritte bei der Übersetzung meiner englischen Einführung zum maschinellen Lernen: Für die folgenden Kapitel gilt mein besonderer Dank Dr. Konrad Wienands, der diese für unsere Webseite aus dem Englischen übersetzt hat:
Februar 2021:
In den letzten Tagen habe ich von früh morgens bis spät Abends an der Webseite gearbeitet. Es gibt nun endlich die ersten Kapiteln zum maschinellen Lernen: Dabei handelt es sich um eine Übersetzung und Überarbeitung meiner englischen Einführung ins Machine Learning, welches ich bereits im Januar 2017 begonnen hatte..
Außerdem habe ich die ersten drei Kapitel meiner Einführung in die OOP komplett überarbeitet.

Januar 2021:
Entfernung des Python2-Tutorial, da Python2 nun endgültig Geschichte ist bzw. sein sollte. Außerdem habe ich die Gleiderung des Tutorial überarbeitet, d.h. neue Sektionen eingeführt.
Oktober 2020:
Das Kapitel über Rekursive Funktionen wurde völlig überarbeitet und mit zusätzlichen interessanten Beispielen und Aufgaben angereichert!
September 2020:
Es wird nun farbig im Tutorial! Nachdem es lange Zeit nur Änderungen auf der englischen Webseite gab, haben wir nun auch auf der deutschen Webseite ein großes Projekt in Angriff genommen. Melisa Atay arbeitet hart daran, die vorhandenen HTML-Dateien in Jupyter-Notebooks umzuwandeln, die dann automatisch in HTML umgewandelt werden. Auf diese Weise erhalten die Codelistings eine Syntaxhervorhebung. Dabei wird sie natürlich auch die Beispiele und Texte anpassen.
Oktober 2016:
Im Laufe der letzten Monate wurden mehrere Kapitel unseres Python3-Tutorials in englischer Sprache ins Deutsche übersetzt, so dass das gesamte Tutorial nun auch vollständig in Deutsch vorliegt. Es handelt sich um die Kapitel:
September 2015:
Überarbeitung des Kapitels über "Memoisation.

Juli 2015:
Neues Kapitel über "Slots hinzugefügt.

März 2014:
Im ersten Quartal von 2014 haben wir das Kapitel über objektorientierte Programmierung nahezu komplett umgeschrieben, erweitert und verbessert. Das alte Kapitel "Klassen" befindet sich nicht mehr im Index auf der linken Seite, weil wir es durch die folgenden fünf Kapitel ersetzt haben: Ausgedruckt ergeben diese fünf Kapitel 65 Seiten statt bisher 12 Seiten. Damit dürfte es zu den umfangreichsten im Internet verfügbaren Einführungen in die objektorientierte Programmierung mit Python in Deutsch gehören. Insgesamt sind ca. 200 Arbeitsstunden alleine in diese Verbesserung und Erweiterung geflossen. Dies nur als Anmerkung für unflätige Flamer, die uns Hass-Emails schreiben, wenn mal ein Doppelpunkt oder Komma falsch steht!

Online Kurs

In unserem Tutorial finden Sie einen kompletten Python-Kurs. Eigentlich mehrere Python-Kurse mit Schwerpunkten zu verschiedenen Gebieten:

Grundlagen von Python

  • Das erste Kapitel beschäftigt sich mit der Entstehung und der Philosophie von Python: Geschichte von Python
  • Dann zeigen wir, wie man sehr schnell mit der interaktiven Shell erste kleine Erfolge verbuchen kann: Interaktiver Modus
  • Wie lässt sich Code ausführen und was passiert hinter den Kulissen von Python?
  • Python hat einen unorthodoxen Stil seine Skripte in Blöcke zu strukturieren.
  • Auch bei den Datentypen und Variablen ist vieles anders aber vor allen Dingen klarer als in anderen Programmiersprachen.
  • Die Operatoren sind hingegen so, wie man sie kennt und erwartet.
  • Python brilliert durch die Klarheit und Konsequenz mit der Sequentielle Datentypen wie Strings, Listen und Tupel wo immer es geht einheitlich behandelt werden.
  • im Kapitel Listen zeigen wir, wie man Listen mit den Methoden "pop", "insert", "append", "extend" und "remove" manipulieren kann. Außerdem demonstrieren wir, wie man Elemente in Listen finden kann.
  • Ein weiterer häufig genutzter Datentyp in Python sind die Mengen.
  • Hashes oder assoziative Arrays kennt man in Python als Dictionaries
  • Wenn es ums Kopieren von Listen und anderen Datenstrukturen geht, machen Anfänger gerne mal Fehler. Deshalb lohnt sich ein Blick in unser Kapitel "Flaches und tiefes Kopieren" in unserem Tutorial.
  • Was wäre eine Programmiersprache ohne die Möglichkeit von Benutzereingaben? Die Antwort ist klar. Sie wäre kaum sinnvoll nutzbar. Deshalb geht es in diesem Kapitel unseres Python-Tutorials um Benutzereingaben mit input .
  • Bedingte Anweisungen sind in Python so, wie man sie aus den meisten anderen Sprachen kennt.
  • Die while-Schleife ist wie gewohnt. Allerdings hat sie mit dem optionalen else-Zweig ein Feature was gerne übersehen und unterschätzt wird.
  • Die for-Schleife ähnelt der for-Schleife, wie man sie aus der Bash-Shell kennt.
  • Ausgaben mit print
  • Man will die Ausgaben eines Programmes natürlich in schöner und übersichtlicher Darstellung sehen, also eine formatierte Ausgabe
  • Die Funktionen zeichnen sich auch durch eine einfache und leicht zugängliche Syntax aus.
  • Wie sieht die Parameterübergabe in Python aus? Wertübergabe (Call by Value) oder Referenzübergabe (Call by Reference)?
  • Um Namensräume und Gültigkeitsbereiche von Variablen geht es in unserem Kapitel "Globale und lokale Variablen"
  • Fast alle größeren Skripte und Programme müssen lesend und schreibend auf Dateien zugreifen können.
  • Dann können Sie lernen, wie einfach man Module in Python erstellen kann.
  • Irgendwann kommt unweigerlich der Punkt, an dem man Module in Paketen zusammenfassen will oder muss.
  • Die Ausnahmebehandlung ist für viele Programmierer traditioneller Programmiersprachen wie C und Fortran ein unbekanntes Konzept, was sie häufig meiden, auch wenn Sie es in Python oder Java nutzen können.

Weitere Themen

Objektorientierte Programmierung in Python

Python-Kurs: Funktionale Programmierung

  • Zu Unrecht gefürchet: Rekursive Funktionen. Wir zeigen Ihnen, wie man in Python rekursiv programmiert.
  • Die Memoisation bezeichnet eine Technik in der Programmierung, die dazu dient Programme effizienter zu implementieren, indem Funktionswerte gespeichert werden.
  • Erst reguläre Ausdrücke machen eine Sprache für anspruchsvolle Textverarbeitung brauchbar. Deshalb haben wir eine detaillierte Einführung in das Thema Reguläre Ausdrücke und ein Kapitel für Fortgeschrittene ausgearbeitet, die hoffentlich keine Fragen offen lassen.
  • Wir zeigen Ihnen, dass Lambda-Operator, filter, reduce und map gar nicht so kompliziert wie ihr Ruf sind.
  • Einfacher als mit "Lambda und Co." geht es natürlich mit der List Comprehension (Listen-Abstraktion)
  • Generatoren schrecken viele ab, weil sie so abstrakt klingen, aber wie zeigen mit einfachen Beispielen, wie man sie lieben lernt.
  • In unserem Tutorial zu Python 3 haben wir das Kapitel über die objektorientierte Programmierung komplett neu überarbeitet. Aus einem Kapitel Klassen sind nun fünf umfangreiche und gut illustrierte Kapitel geworden:

Kurs ungleich Kurs

Wir wollen kurz den Begriff definieren, und damit erklären, wie es zum Titel dieser Webseite kam. Das Wort Kurs wird im deutschen Sprachgebrauch recht unterschiedlich gebraucht. So denken Börsianer, wenn sie den Begriff hören, wohl meistens an steigende und fallende Kurse, aber nicht an Lerninhalte. Sie lesen häufig sogar eine Fachzeitung mit Namen "KURS". Notenbanken beschäft das Wertverhältnis ihrer Währung im Verhältnis zu anderen Währungen, also der sogenannte Wechselkurs. Außerdem spricht man auch von Kursen, wenn man Streckenverläufe von Bus- und Bahnlinien bezeichnet, aber auch zum Beispiel eine Rennstrecke.
Man hält auch ein Schiff oder Flugzeug auf Kurs, und das ist auch unsere Absicht in unserem Python-Kurs: Wir wollen Sie bei der Stange halten. Diese Seite stellt aber auch ein Curriculum - noch ein Synonym für Kurs - zur planmäßigen Vermittlung von Programmiertechniken und Algorithmen dar.