Variablen tauschen – Tutorial zu Python

Schon seltsamer Zufall. Ich halte gerade eine Remote-Schulung zu C# und habe eben als Abschluss-Übung ein Beispiel durchgespielt, in dem die Teilnehmer mit einer Methode den Inhalt von zwei Variablen vertauschen sollen. Eben schaue ich, was der heute veröffentlichte Entwickler-Tipp zu Python für ein Thema hat. Tja – Variablen tauschen mit Python. Ich wusste es wirklich nicht, denn die Reihenfolge der Tipps und deren Veröffentlichung wird bei LinkedIn Learning entschieden. Bei Python geht so ein Vertauschen allerdings extrem elegant und kompakt. Weit weniger aufwändig als etwa in C#.

Objekte mit der dir()-Methode analysieren

Das Jahr 2022 ist angelaufen und in der Spur. Mittwoch ist damit der Tag für meinen regelmäßigen Entwickler-Tipp zu Python bei LinkedIn Learning. Dabei geht es um die Aussage, dass alles in Python ein Objekt ist. Dabei ist ein Objekt von der internen Struktur im Grunde immer ein Key-Value-System und mit der dir-Funktion, der man als Parameter ein Objekt übergibt, kann diese analysieren.

Der erste neue Tipp des Jahres

Nachdem es zwischen den Jahren keinen neuen Tipp gab, wurde heute bei LinkedIn Learning wieder der nächste regelmäßige Entwickler-Tipp zu Python freigeschaltet. Der erste Tipp im Jahr 2022. Dieses Mal verbinde ich die Themen Python und Docker. Gerade mit Docker habe ich ja Anfang letzten Jahres etwas mehr beschäftigt, um eine Cordova-Umgebung für meine Vorlesung bei der TH Bingen bereitzustellen. Damit kann man ja alle möglichen verschiedenen Konfigurationen und Systeme bereitstellen, ohne immer wieder seinen Rechner umkonfigurieren zu müssen. Auch für Python.

Wenn man Docker installiert hat, dann kann man ein Python-Image laden und auf dem Rechner installieren. Das heißt, man hat eine virtuelle Laufzeitumgebung für Python. Das ist vor allen Dingen dann interessant, wenn man verschiedene Versionen von Python benötigt. Dazu muss allerdings auf dem Rechner Docker installiert sein. Das Zusammenspiel zwischen Python und Docker geht in zwei Richtungen. Nicht nur kann man mit Docker eine Python-Umgebung, eine virtuelle Python-Umgebung schaffen, es gibt auch die Möglichkeit, ein Docker-SDK für Python zu installieren.

Der letzte Tipp mit leichter Verspätung, der aktuelle dafür schon heute am frühen Morgen

Mein regelmäßiger Entwickler-Tipp zu Python wurde letzte Woche bei LinkedIn Learning erst an Freitag freigeschaltet, aber der Entwickler-Tipp zu Python in der Woche ist heute – als am üblichen Mittwoch – schon früh  am Morgen da.

Ich begebe mich dieses Mal etwas in die Welt der Administration bzw. von Administratoren. Eigentlich für mich ein etwas fremdes Gebiet, denn ich bewege mich sonst in der Regel rein im Umfeld der Programmierung. Genaugenommen sogar überwiegend der Anwendungs- und Web-Entwicklung. Aber über die Jahre kommt man auch immer wieder mit Themen aus dem Admin-Bereich in Berührung. Ich behaupte, dass ich mittlerweile theoretisch sogar als Admin arbeiten könnte. Vielleicht wäre ich kein wirklich guter Admin, aber die meisten administrativen Dinge – insbesondere unter Linux – würde ich wohl hingekommen.

Und bei dem aktuellen Tipp geht es ja immer noch um Python. Nur halt um einen Einsatzzweck, der für Admins von Interesse ist – wie man mit Python zeitgesteuerte Befehle auf dem Server ausführen kann. Konkret nutze ich dabei Linux als Serversystem und zeige, wie man CronJobs erstellen bzw. CronTabs mit Python schreiben kann.

Ausnahmsweise Donnerstag

Diese Woche ist erst am Donnerstag der neue Entwickler-Tipp zu Python bei LinkedIn Learning freigeschaltet worden. Es geht hier darum, wie man aus Python eine automatische Quelltextdokumentation generieren kann. So eine Dokumentation von Softwareprojekten ist eine oft leidige, aber immens wichtige Aufgabe und in nahezu allen modernen Programmiersprachen gibt es Möglichkeiten, diese Dokumentation aus dem Quellcode heraus etwas zu erleichtern, indem man bestimmte Token in den Quellcode schreibt und daraus eine HTML-Dokumentation oder auch in einem anderen Format erzeugt werden. In Python kann man etwa pydoc bzw. dessen Fork pydoc3 verwendet werden, was in dem Tipp gezeigt wird.

Werte mehreren Variablen in einer Zeile zuweisen – neu in meinem Tutorial zu Python

Auch wenn ich derzeit in Marburg auf Schulung bin, erscheint natürlich am Mittwoch bei LinkedIn Learning wieder ein neuer, aktueller Entwickler-Tipp zu Python. Thema ist die elegante Zuweisung der Werte bei mehreren Variablen.

Neu erschienen – mein JavaFX Grundkurs bei LiL

Über den Sommer habe ich mehrere Training bzw. Aktualisierungen für LinkedIn Learning eingespielt, deren endgültige Fertigstellung bzw. Produktion sich dann doch ziemlich hingezogen haben. Nicht zuletzt Corona hat Arbeitsabläufe und Kapazitäten sowie Prioritäten im Griff,. Aber die Woche ging es wie beim Bretzelbacken und neben der Aktualisierung meines Training zu den Neuerungen der verschiedenen Versionen von Java und meinem aktuellen Entwickler-Tipp zu Python ist diese Woche auch der JavaFX Kurs erschienen. Dabei geht es neben JavaFX auch um FXML und den Sceen Builder sowie NetBeans, Maven, Ant, Gradle, JDK etc..

Ich habe schon früher Kurse zu JavaFX eingespielt (sogar schon zu Zeiten von Video2Brain (V2B), aber auch dann Aktualisierungen für LiL), aber die sind mittlerweile komplett veraltet. Der neue JavaFX Kurs ist deshalb vollkommen neu konzipiert und vollständig neu eingespielt. Außer ein paar Ideen für Beispiele ist nichts mehr identisch zu den alten Kursen.

Was übrigens auch JavaFX als Technologie betrifft. Diese hat sich zum Teil komplett inkompatibel zu älteren Versionen weiterentwickelt. Offiziell heisst sie jetzt sogar nicht mehr JavaFX, sondern OpenJFX und wird nicht mehr von Orcale verantwortet, sondern einer OpenSource-Organisation. Wobei sich der Bezeichner „OpenJFX“ wohl nicht so richtig etablieren will und man deshalb an den meisten Stellen doch wieder den ursprünglichen Bezeichner „JavaFX“ beibehält.

Neuer Tipp zum Verketten von Vergleichsoperatoren

Bei LinkedIn Learning ist wieder ein aktueller Entwickler-Tipp zu Python verfügbar. Es geht dieses Mal um die Verkettung von Vergleichsoperatoren. Dabei geht es darum, mehrere Bedingungen zu verknüpfen und über eine einfache Schreibweise das zu machen. Und wer es noch nicht mitbekommen hat – in der Woche der Veröffentlichung ist der aktuelle Tipp frei (d.h. kostenlos) verfügbar.

Neu im Python-Tutorial – Argumente mit dem Scatter-Operator ein- und auspacken

Argumente mit dem Scatter-Operator ein- und auspacken ist das Thema in meinem aktuellen Entwickler-Tipp zu Python aus meinem Tutorial bei LinkedIn Learning. Python stellt damit interessante Möglichkeiten bereit, um sequentielle Datenstrukturen zu packen und zu entpacken. Man spricht in dem Fall oft auch von dem Scatter-Operator. Wobei dieser Begriff nicht standardisiert ist.

F-Strings zur Verwendung von Variablen in Strings – ein neuer Tipp aus meinem Tutorial zu Python

Um die Verwendung von F-Strings bei Variablen geht es in meinem aktuellen Entwickler-Tipp zu Python aus meinem Tutorial bei LinkedIn Learning. Es geht darum, dass man Variablen direkt in einem String auswerten lassen kann. Das vermeidet mühselige und oft unübersichtliche Stringverkettungen.

YouTube-Downloader erstellen – aus meinem Tutorial zu Python

Mit Python und geeigneten Frameworks wird der Download von frei zugänglichen Videos fast zum Kinderspiel. Das zeige ich im aktuellen Entwickler-Tipp zu Python bei LinkedIn Learning. Sie sehen in dem Tipp, wie Sie das auf einfache Weise mit einem YouTube-Downloader als Grundlage für eigene Erweiterungen nutzen können – auf Basis eines Frameworks mit Namen pytube. Und bevor wir jetzt in die falsche Richtung denken – es geht nicht um einen YouTube-Downloader, der illegale Inhalte laden kann. Geschützte Dateien werden damit nicht geladen, aber wir können damit freie Videos laden, freie Multimediadateien.

Die REST-API mit Python nutzen – neu in meinem wöchentlichen Tutorial zu Python

Mittwoch und bei LinkedIn Learning gibt es wieder einen neuen Entwickler-Tipp zu Python. Mit der REST-Schnittstelle erhält man zusätzliche Flexibilität in Python, um Management-Aufgaben durchzuführen aber auch automatische Informationen zu nutzen. Python bietet sich gerade zu ideal für die Zusammenarbeit an. Sogenannte Web Services stellen standardisierte Schnittstellen bereit, womit man über das Internet kommunizieren kann. Genau genommen können Sie Dienste in Anspruch nehmen, die in einer standardisierten Form bereitgestellt werden. Das kann man auch aus Python heraus nutzen. Das sogenannte RESTful-API oder allgemein Rest ist eine solche Programmierschnittstelle, die auf HTTP-Anfragen reagiert. Im Wesentlichen unterscheidet man hier zwischen den verschiedenen Methoden, die man mit HTTP-Daten anfordern kann. Get, Post, Put und Delete. Und in Abhängigkeit von diesen Methoden können gewisse Dinge bereitgestellt werden. Die Antwort von einem Rest oder RESTful Web Service liegt in der Regel in Json oder dem XML-Format vor und Python nutzt als Basis für REST oft das Modul requests.

Reguläre Ausdrücke in Python

Bei LinkedIn Learning gibt es seit heute wieder einen neuen Entwickler-Tipp zu Python. Reguläre Ausdrücke in Python sind das Thema. Reguläre Ausdrücke sind sehr mächtige Features, um Suchausdrücke in Form von Pattern zu definieren. Das re-Modul ist der Zugang in Python, das in diesem Video vorgestellt wird. In Python ist das Modul re die Basis. Nicht die einzige Möglichkeit, aber das ist ein Standardmodul, mit dem man reguläre Ausdrücke formulieren und vor allen Dingen verwerten kann. Das Interessante ist nicht die Formulierung, das ist die Verwertung. Das heißt, es gibt Methoden, um reguläre Ausdrücke, also Such-Pattern in irgendeiner Form zu verarbeiten, nach Übereinstimmungen zu suchen, aber beispielsweise auch Texte an gewissen Stellen aufzusplitten und ähnliche Dinge.

Reference Counting – Länger und länger

Mit 12:19 Minuten ist mein aktueller Entwicklungs-Tipp der Woche bei LiL schon gewaltig lang für ein Video. Aber zu dem Thema „Reference Counting“ gibt es bei Python einfach eine Menge zu sagen. Dabei geht es um eines der geheimnisvollsten Dingen in Python – die Referenznummer bei Objekten. Die Details und Auswirkungen sind sehr spannend und erklären die manchmal etwas „eigenartigen“ Verhaltensweisen von Python. Das betrifft etwa die Technologie der Speicherbereinigung, aber nicht nur diese.

Properties vs Getter und Setter in Python

Heute ist wieder der Regeltag, an dem bei LinkedIn Learning mein aktueller Entwickler-Tipp zu Python veröffentlicht wird. Getter und Setter auf der einen Seite und Properties auf der anderen Seite stehen im Fokus. So genannte Properties sind in vielen Sprachen als Ersatz von Gettern und Settern sehr populär geworden. Auch Python kennt diese.

Mein bisher längster Entwickler-Tipp zu Python

Gerade habe ich bei LinkedIn Learning nachgesehen, welcher aktueller Entwickler-Tipp zu Python die Woche veröffentlicht wurde. Denn die Reihenfolge, wie die Tipps freigeschaltet werden, ist nicht zwingend identisch zur Reihenfolge, wie ich sie aufgenommen habe. Ich habe dazu zwar gewisse Vorschläge eingereicht, aber die habe ich weder in Erinnerung noch ist es sicher, dass die auch so umgesetzt werden. Deshalb bin ich in der Tat jede Woche gespannt, welches Thema für die jeweilige Woche angesagt ist.

Die Woche geht es um diverse Spezialitäten bei Lambda-Ausdrücken. Mit über 10 Minuten ist dieser Entwickler-Tipp wohl auch der bisher umfangreichste, wenn ich das recht im Blick habe. Aber es gibt eine ganze Menge zu Lambda-Ausdrücken unter Python zu sagen. Einfach selbst überzeugen.

Qualitätskontrolle mit Linting – Neues in meinem Tutorial zu Python

Bei LinkedIn Learning gibt es wieder einen neuen Entwickler-Tipp zu Python. Thema ist diese Woche die Qualitätskontrolle mittels Linting. Beim Linting geht es allgemein um die Verbesserung der Softwarequalität. Für die Qualität von Software es ist nicht nur elementar, dass diese fehlerfrei ist. Es gibt weitere Kriterien, die teils standardisiert getestet werden können. Unter Python kann man das mit PyLint machen. Hervorragend wird das Linting dabei in Visual Studio Code integriert.

Doppelte Verschiebung

Für Mittwoch hatte ich eine UML-Einzelschulung auf der Agenda. Remote und nur einen Tag, aber über Nacht ist der Teilnehmer krank geworden. Er hat um eine Verschiebung gebeten und da ich den Monat ziemlich flexibel bin, habe ich die auf den heutigen Donnerstag verschoben. Interessanter Weise ist aber auch mein wöchentlicher Entwickler-Tipp zu Python erst am heutigen Donnerstag freigeschaltet worden. Also gleich eine 2-fache Verschiebung. Im Entwickler-Tipp geht es um das Debuggen von Python-Quellcode in Visual Studio Code.

Lambda-Ausdrücke bei Iteratoren – der aktuelle Tipp aus meinem Tutorial zu Python

Heute waren die Kollegen bei LinkedIn Learning aber verdammt früh schon am Arbeiten, denn bereits vor 8:00 Uhr ist mein wöchentlicher Entwickler-Tipp zu Python schon veröffentlicht worden. Im aktuellen Tipp nehme ich mir den Einsatz von Lambda-Ausdrücken bei Iteratoren vor. Da zeigt sich eine der ganz großen Stärken von Python, denn diese Syntaxkonstruktion ist immens effizient.