In Deutschland habe ich Informatik studiert und promoviert. Es ist mir daher ein besonderes Vergnügen, das Vorwort für diese deutsche Ausgabe zu schreiben.
Der Trend zu Digitalisierung und Programmierung ist ungebrochen in Deutschland. Auf jeden Informatikabsolventen kommen zahlreiche offene Stellen im produzierenden Gewerbe, in der Automobilindustrie, im E-Commerce sowie im öffentlichen Dienst. Programmierfähigkeiten sind gefragt – und mit dem Aufkommen von selbstfahrenden Autos, leistungsfähigen Industrierobotern und der raschen Ausbreitung neuer Technologien im maschinellen Lernen gibt es kaum noch einen Wirtschaftssektor, der von der Digitalisierung unberührt bleibt. Auch neuere Entwicklungen wie die zunehmende Bedeutung von Arbeit im Homeoffice verstärken die Nachfrage nach Informatikern und Programmierern, die mithilfe ihrer Programmierfähigkeiten die Grundlage dafür schaffen. Auch in den kommenden Jahrzehnten können Sie sich darauf verlassen, dass die Nachfrage nach Python-Entwicklern weiter steigen wird, insbesondere im deutschsprachigen Raum.
Meine Python Community1 zur Informatikbildung, Finxter, erfreute sich in den letzten Jahren großen Zulaufs. Je mehr Menschen ich durch Python begegnete, desto mehr kristallisierte sich für mich heraus, dass Python nicht nur eine reine Programmiersprache zur Bedienung von Maschinen ist – Deutsch ist ja auch nicht nur eine Sprache zur Bedienung von Menschen! Wie eine sogenannte natürliche Sprache verbindet Python Millionen von Menschen unterschiedlicher Herkunft. Wie eine natürliche Sprache erleben Millionen Menschen, wie Python ihrer schöpferischen Kraft Ausdruck verleiht.
Ich bin überzeugt, dass jeder moderne Mensch davon profitiert, Python zu lernen. Python ist die Sprache der Algorithmen. Und diese durchdringen mehr und mehr Bereiche des täglichen Lebens. Algorithmen finden kürzeste Wege zur Arbeit, lenken selbstfahrende Autos und helfen bei der effizienten Verteilung von Gütern in weltweiten Mobilitätsnetzen. Python ermöglicht der Menschheit eine effizientere und skalierbarere Organisation von Arbeit. Mithilfe von Computern und Automatisierung sind wir nun in der Lage, eine Gesellschaft zu entwerfen, in der jeder Menschen die Freiheit besitzt, sich seinen Alltag weitestgehend nach seinen eigenen Vorstellungen zu gestalten.
Das Verständnis von Python wird auch Ihrer Karriere nützen. Einige meiner Freunde, Kommilitonen und Kollegen in der Informatikforschung schulden ihren internationalen Erfolg zu einem nicht unwesentlichen Teil ihrer Fähigkeit, Python zu sprechen. Viele der größten Unternehmen und Organisationen unserer Zeit sind mehr denn je an »deutscher Ingenieurskunst« und aufstrebenden Programmierern interessiert, die der Sprache Python mächtig sind.
Bevor Sie mit dem Sprechen ganzer Sätze beginnen, müssen Sie zunächst einzelne Wörter verstehen. Und bevor Sie mit dem Erzählen ganzer Geschichten beginnen, müssen Sie zunächst ganze Sätze bilden können. Das trifft auch auf Programmiersprachen zu! Jedes noch so komplizierte Python-Projekt besteht aus einer Reihe von – oftmals Tausenden – Python One-Liners. Dieses Buch wird Ihnen ein fundiertes Verständnis der einzelnen Zeile von Python-Code vermitteln, sodass Sie nach dessen Lektüre die Python-Vokabeln beherrschen.
Mit diesem Buch möchte ich technikbegeisterten Menschen helfen, die Sprache der Algorithmen zu sprechen, Computer zu beherrschen und deren Kraft gegen die großen Probleme unserer Zeit zu richten.
Einführung
Mit diesem Buch möchte ich Ihnen helfen, zum Python-Experten zu werden. Wir konzentrieren uns dabei auf Python-Einzeiler: knappe Programme, gepackt in eine einzige Zeile Python. Durch die Einzeiler lernen Sie, Code schneller und präziser zu lesen und zu schreiben und Ihr Verständnis der Sprache zu verbessern.
Es gibt außerdem noch fünf weitere Gründe, weshalb ich glaube, dass Python-Einzeiler Ihnen helfen, sich zu verbessern, und deshalb lohnenswerte Studienobjekte sind.
Erstens, durch das Verbessern Ihrer Python-Kernfähigkeiten werden Sie in die Lage versetzt, viele der kleinen Programmierschwächen zu überwinden, die Sie bremsen. Es ist nicht leicht, Fortschritte zu erzielen, wenn man die Grundlagen nicht richtig verstanden hat. Einzelne Codezeilen sind die Grundbausteine jedes Programms. Wenn Sie diese Grundbausteine verstehen, können Sie auch komplexere Probleme meistern, ohne dass Sie diese überfordern.
Zweitens lernen Sie, die unglaublich beliebten Python-Bibliotheken auszunutzen, wie diejenigen für Data Science und Machine Learning. Das Buch besteht aus fünf Einzeiler-Kapiteln, die jeweils einem eigenen Bereich von Python gewidmet sind, von regulären Ausdrücken bis zum Machine Learning. Durch diese Vorgehensweise erhalten Sie einen Überblick über mögliche Python-Anwendungen und lernen darüber hinaus, diese machtvollen Bibliotheken einzusetzen.
Drittens lernen Sie, Code auf Python-spezifischere Weise zu schreiben. Python-Anfänger, speziell solche, die vorher mit anderen Programmiersprachen gearbeitet haben, schreiben Code oft auf sehr Python-untypische Weise. Wir behandeln Python-spezifische Konzepte wie List Comprehensions, Mehrfachzuweisungen und Slicing, mit deren Hilfe Sie Code schreiben können, der gut lesbar ist und sich dafür eignet, ihn mit anderen Programmierern zu teilen.
Viertens zwingt die Beschäftigung mit Python-Einzeilern Sie dazu, klar und präzise zu denken. Wenn jedes einzelne Codesymbol zählt, bleibt kein Platz für zerstreutes und unkonzentriertes Programmieren.
Fünftes erlauben es Ihnen Ihre neuen Fähigkeiten, übermäßig komplizierte Python-Codeprojekte zu durchschauen und Freunde wie Arbeitgeber gleichermaßen zu beeindrucken. Außerdem dürfte es Ihnen Spaß machen, anspruchsvolle Programmierprobleme mit nur einer einzigen Zeile Code zu lösen. Und Sie wären damit nicht allein: Eine aktive Online-Community aus Python-Geeks wetteifert um die kompaktesten, Python-typischsten Lösungen für verschiedene praktische (und nicht so praktische) Probleme.
Ein Beispiel für einen Python-Einzeiler
Die zentrale These dieses Buchs ist, dass das Lernen von Python-Einzeilern entscheidend für das Verständnis anspruchsvollerer Codeprojekte sowie ein ausgezeichnetes Werkzeug für die Verbesserung Ihrer Fähigkeiten ist. Bevor Sie verstehen, was in einer Codebasis mit Tausenden von Zeilen passiert, müssen Sie die Bedeutung einer einzelnen Codezeile verstehen.
Schauen wir uns einen Python-Einzeiler an. Es macht nichts, wenn Sie nicht alles verstehen. Sie werden diesen Einzeiler in Kapitel 6 meistern.
q = lambda l: q(
[x for x in l[1:] if x <= l[0]]) + [l[0]] + q([x for x inl if x > l[0]]) if l else []
Dieser Einzeiler ist eine wunderbare und präzise Möglichkeit, den berühmten Quicksort-Algorithmus kurz und knapp zusammenzufassen, auch wenn seine Bedeutung für viele Anfänger und selbst für fortgeschrittene Anfänger schwierig zu durchschauen sein dürfte.
Python-Einzeiler bauen oft aufeinander auf, sodass die Einzeiler im Laufe des Buchs immer komplexer werden. Wir beginnen hier mit einfachen Einzeilern, die dann später die Grundlage für komplexere Einzeiler bilden werden. So ist zum Beispiel der gezeigte Quicksort-Einzeiler schwierig und lang, basiert aber auf dem einfacheren Konzept der List Comprehension
. Schauen Sie sich die folgende einfachere List Comprehension an, die eine Liste aus Quadratzahlen erzeugt:lst = [x**2 for x in range(10)]
Wir können diesen Einzeiler in noch einfachere Einzeiler zerlegen, die uns wichtige Python-Grundlagen lehren, wie Variablenzuweisungen, mathematische Operatoren, Datenstrukturen, for-Schleifen, Zugehörigkeitsoperatoren und die range()-Funktion – und all dies in einer einzigen Zeile Python!
Seien Sie sich bewusst, dass grundlegend nicht gleichbedeutend ist mit trivial. Alle Einzeiler, die wir uns anschauen,