Python One-Liners. Christian Mayer

Читать онлайн.
Название Python One-Liners
Автор произведения Christian Mayer
Жанр Математика
Серия
Издательство Математика
Год выпуска 0
isbn 9783969101155



Скачать книгу

einer Disziplin der Informatik, sodass Sie am Ende einen umfassenden Eindruck von der Stärke gewonnen haben werden, die Python Ihnen bietet.

       Ein Hinweis zur Lesbarkeit

      The Zen of Python fasst 19 Leitsätze für die Programmiersprache Python zusammen. Sie können sie in Ihrer Python-Shell lesen, indem Sie import this eingeben:

      >>> import this

      The Zen of Python, by Tim Peters

      Beautiful is better than ugly.

      Explicit is better than implicit.

      Simple is better than complex.

      Complex is better than complicated.

      Flat is better than nested.

      Sparse is better than dense.

      Readability counts.

       -- schnipp --

      Laut The Zen of Python ist Lesbarkeit wichtig – »Readability counts«. Einzeiler sind minimalistische Programme zum Lösen von Problemen. In vielen Fällen wird durch das Umformulieren eines Stücks Code in einen Python-Einzeiler die Lesbarkeit verbessert, und der Code wird Python-artiger. Ein Beispiel ist die Verwendung von List Comprehension, um das Erzeugen von Listen auf eine einzelne Codezeile zu reduzieren. Schauen Sie sich das folgende Beispiel an:

      # VORHER

      squares = []

      for i in range(10):

      squares.append(i**2)

      print(squares)

      # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

      In diesem Codeausschnitt brauchen wir fünf Zeilen Code, um eine Liste der ersten zehn Quadratzahlen zu erzeugen und auf der Shell auszugeben. Da ist es doch viel besser, wenn man eine Einzeilerlösung benutzt, die dasselbe in einer besser lesbaren und präzisen Weise erreicht:

      # NACHHER

      print([i**2 for i in range(10)])

      # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

      Das Ergebnis ist identisch, doch der Einzeiler setzt auf das Python-spezifische Konzept der List Comprehension. Er ist leichter lesbar und prägnanter.

      Es kann aber auch schwierig sein, Python-Einzeiler zu verstehen. In manchen Fällen ist eine Python-Einzeilerlösung nicht lesbarer. Doch genau wie ein Schachmeister, der alle möglichen Züge kennen muss, bevor er sich für einen entscheiden kann, der ihm als der beste erscheint, müssen Sie alle Möglichkeiten kennen, Ihre Gedanken in Code auszudrücken, um zu entscheiden, welche die beste ist. Nach der schönsten Lösung zu streben, ist gar nicht so unwichtig; schließlich findet sich dieses Prinzip im Herzen des Python-Ökosystems. Wie uns The Zen of Python lehrt, ist schön besser als hässlich: »Beautiful is better than ugly«.

       An wen richtet sich dieses Buch?

      Sind Sie Anfänger oder fortgeschrittener Anfänger? Wie viele Ihrer Kollegen stecken auch Sie möglicherweise im Programmierprozess. Dieses Buch kann Ihnen aus dieser Lage heraushelfen. Sie haben online viele Programmieranleitungen gelesen. Sie haben Ihren eigenen Quellcode geschrieben und erfolgreich kleine Projekte ausgeliefert. Sie haben einen Programmiergrundkurs abgeschlossen und ein oder zwei Fachbücher zur Programmierung gelesen. Vielleicht haben Sie sogar einen Kurs an der Uni absolviert, bei dem Sie die Grundlagen von Informatik und Programmierung kennengelernt haben.

      Vielleicht werden Sie durch bestimmte Überzeugungen beschränkt, etwa, dass die meisten Programmierer Quellcode viel schneller verstehen als Sie oder dass Sie auf keinen Fall zu den zehn Prozent besten Programmierern gehören. Falls Sie lernen wollen, besser zu programmieren und zur Spitze vorzudringen, müssen Sie neue, nützliche Fähigkeiten erwerben.

      Ich kann Ihre Probleme nachvollziehen. Als ich vor zehn Jahren begann, Informatik zu studieren, war ich überzeugt, dass ich nichts über das Programmieren wusste. Gleichzeitig schien mir, als seien alle meine Kommilitonen bereits sehr erfahren und kompetent.

      Ich möchte Ihnen mit diesem Buch helfen, diese einschränkenden Überzeugungen zu überwinden und einen entscheidenden Schritt zum Meistern von Python zu machen.

       Was werden Sie lernen?

      Es folgt ein Überblick über das, was Sie lernen werden.

       Kapitel 1: Python-AuffrischungskursFührt Sie in die Grundlagen von Python ein, um Ihr Wissen aufzufrischen.

       Kapitel 2: Python-TricksEnthält zehn Einzeilertricks, mit denen Sie die Grundlagen meistern können, wie etwa List Comprehensions, Dateieingabe, die Funktionen lambda, map() und zip(), den Quantor all(), Slicing und einfache Listenberechnungen. Sie lernen außerdem, wie Sie Datenstrukturen benutzen und manipulieren, um verschiedene Standardprobleme zu lösen.

       Kapitel 3: Data ScienceEnthält zehn Einzeiler für das Data Science, die auf der NumPy-Bibliothek aufbauen. NumPy bildet den Kern der leistungsstarken Machine-Learning- und Data-Science-Fähigkeiten von Python. Sie eignen sich elementare NumPy-Grundlagen wie Array, Shape, Typ, Broadcasting, fortgeschrittene Indexierung, Slicing, Sortieren, Suchen, Sammeln und Statistiken an.

       Kapitel 4: Machine LearningBehandelt zehn Einzeiler für das Machine Learning mit Pythons scikit-learn-Bibliothek. Sie lernen Regressionsalgorithmen kennen, die Werte vorhersagen. Dazu gehören lineare Regression, k-Nearest Neighbors und neuronale Netzwerke. Außerdem lernen Sie Klassifikationsalgorithmen kennen wie logistische Regression, Decision-Tree Learning, Support-Vector Machines und Random Forests. Darüber hinaus erfahren Sie, wie Sie einfache Statistiken mehrdimensionaler Datenfelder sowie den k-Means-Algorithmus für Unsupervised Learning berechnen. Diese Algorithmen und Methoden gehören zu den wichtigsten auf dem Gebiet des Machine Learning.

       Kapitel 5: Reguläre AusdrückeEnthält zehn Einzeiler, mit denen Sie mehr aus regulären Ausdrücken herausholen. Sie lernen verschiedene einfache reguläre Ausdrücke kennen, die Sie kombinieren (und neu kombinieren) können, um komplexere reguläre Ausdrücke zu erzeugen, und verwenden Gruppierung und benannte Gruppen, negative Lookaheads, Escape-Zeichen, Whitespaces, Zeichenmengen (und negative Zeichenmengen) sowie gierige/nicht gierige Operatoren.

       Kapitel 6: AlgorithmenEnthält zehn Einzeiler-Algorithmen zu einem breiten Spektrum an Informatikthemen, darunter Anagramme, Palindrome, Potenzmengen, Permutationen, Fakultäten, Primzahlen, Fibonacci-Zahlen, Verschleiern, Suche und algorithmisches Sortieren. Vieles davon dient als Grundlage für komplexere Algorithmen und enthält den Keim für eine gründliche algorithmische Ausbildung.

       NachwortBeschließt das Buch und entlässt Sie in die wirkliche Welt, in der Sie Ihre neuen und verbesserten Python-Programmierkenntnisse anwenden können.

       Online-Ressourcen

      Zur Ergänzung des Übungsmaterials in diesem Buch habe ich weitere Ressourcen bereitgestellt, die Sie online unter https://pythononeliners.com/ oder