Was ist Python? Leistungsstarke, intuitive Programmierung

Die Programmiersprache Python aus dem Jahr 1991 galt als Lückenfüller, als eine Möglichkeit, Skripte zu schreiben, die „das langweilige Zeug automatisieren“ (wie ein beliebtes Buch zum Erlernen von Python es ausdrückte) oder Anwendungen schnell zu prototypisieren, die in anderen Sprachen implementiert werden .

In den letzten Jahren hat sich Python jedoch zu einem erstklassigen Bürger in der modernen Softwareentwicklung, im Infrastrukturmanagement und in der Datenanalyse entwickelt. Es ist keine Backroom-Utility-Sprache mehr, sondern eine wichtige Kraft bei der Erstellung und Verwaltung von Webanwendungen und ein wesentlicher Treiber für die Explosion der Big-Data-Analyse und der Maschinenintelligenz.

Zugehöriges Video: Wie Python die Programmierung erleichtert

Python ist perfekt für die IT geeignet und vereinfacht viele Arten von Arbeiten, von der Systemautomatisierung bis hin zur Arbeit in hochmodernen Bereichen wie maschinellem Lernen.

Die wichtigsten Vorteile von Python 

Der Erfolg von Python beruht auf mehreren Vorteilen, die Anfängern und Experten gleichermaßen geboten werden.

Python ist einfach zu erlernen und zu verwenden

Die Anzahl der Funktionen in der Sprache selbst ist bescheiden und erfordert relativ wenig Zeit oder Mühe, um Ihre ersten Programme zu erstellen. Die Python-Syntax ist lesbar und unkompliziert. Diese Einfachheit macht Python zu einer idealen Unterrichtssprache und ermöglicht es Neulingen, sie schnell zu erlernen. Infolgedessen verbringen Entwickler mehr Zeit damit, über das Problem nachzudenken, das sie lösen möchten, und weniger Zeit damit, über Sprachkomplexitäten nachzudenken oder Code zu entschlüsseln, den andere hinterlassen haben.

Python wird weitgehend übernommen und unterstützt

Python ist sowohl beliebt als auch weit verbreitet, wie die hohen Platzierungen in Umfragen wie dem Tiobe-Index und die große Anzahl von GitHub-Projekten, die Python verwenden, bestätigen. Python läuft auf allen wichtigen Betriebssystemen und Plattformen sowie auf den meisten kleineren. Viele wichtige Bibliotheken und API-basierte Dienste verfügen über Python-Bindungen oder -Wrapper, sodass Python frei mit diesen Diensten kommunizieren oder diese Bibliotheken direkt verwenden kann. 

Python ist keine Spielzeugsprache

Obwohl Skripte und Automatisierung einen großen Teil der Anwendungsfälle von Python abdecken (dazu später mehr), wird Python auch zum Erstellen von Software in professioneller Qualität verwendet, sowohl als eigenständige Anwendungen als auch als Webdienste. Python ist vielleicht nicht die schnellste Sprache, aber was ihm an Geschwindigkeit fehlt, macht er an Vielseitigkeit wieder wett.

Python bewegt sich weiter vorwärts

Jede Überarbeitung der Python-Sprache fügt nützliche neue Funktionen hinzu, um mit den modernen Softwareentwicklungspraktiken Schritt zu halten. Beispielsweise sind asynchrone Operationen und Coroutinen mittlerweile Standardbestandteile der Sprache, sodass Python-Apps, die gleichzeitig verarbeitet werden, einfacher geschrieben werden können.

Wofür Python verwendet wird

Der grundlegendste Anwendungsfall für Python ist die Skriptsprache und Automatisierungssprache. Python ist nicht nur ein Ersatz für Shell-Skripte oder Batch-Dateien. Es wird auch verwendet, um Interaktionen mit Webbrowsern oder Anwendungs-GUIs zu automatisieren oder um die Systembereitstellung und -konfiguration in Tools wie Ansible und Salt durchzuführen. Skripte und Automatisierung sind bei Python jedoch nur die Spitze des Eisbergs.

G eneral Anwendungsprogrammierung mit Python

Sie können mit Python sowohl Befehlszeilen- als auch plattformübergreifende GUI-Anwendungen erstellen und diese als eigenständige ausführbare Dateien bereitstellen. Python verfügt nicht über die native Fähigkeit, eine eigenständige Binärdatei aus einem Skript zu generieren, aber Pakete von Drittanbietern wie cx_Freeze und PyInstaller können verwendet werden, um dies zu erreichen.

Datenwissenschaft und maschinelles Lernen mit Python

Eine ausgefeilte Datenanalyse ist zu einem der sich am schnellsten bewegenden Bereiche der IT und zu einem der wichtigsten Anwendungsfälle von Python geworden. Die überwiegende Mehrheit der für Data Science oder maschinelles Lernen verwendeten Bibliotheken verfügt über Python-Schnittstellen. Damit ist die Sprache die beliebteste übergeordnete Befehlsschnittstelle für Bibliotheken für maschinelles Lernen und andere numerische Algorithmen.

Webdienste und RESTful-APIs in Python

Die nativen Python-Bibliotheken und Web-Frameworks von Drittanbietern bieten schnelle und bequeme Möglichkeiten, um alles von einfachen REST-APIs in wenigen Codezeilen bis hin zu vollständigen, datengesteuerten Sites zu erstellen. Die neuesten Versionen von Python bieten starke Unterstützung für asynchrone Vorgänge, sodass Websites Zehntausende von Anforderungen pro Sekunde mit den richtigen Bibliotheken verarbeiten können.

Metaprogrammierung und Codegenerierung in Python

In Python ist alles in der Sprache ein Objekt, einschließlich der Python-Module und -Bibliotheken selbst. Auf diese Weise kann Python als hocheffizienter Codegenerator arbeiten und Anwendungen schreiben, die ihre eigenen Funktionen manipulieren und über eine Erweiterbarkeit verfügen, die in anderen Sprachen nur schwer oder gar nicht möglich ist.

Python kann auch verwendet werden, um Codegenerierungssysteme wie LLVM zu steuern und Code in anderen Sprachen effizient zu erstellen.

"Klebercode" in Python

Python wird oft als „Klebesprache“ beschrieben, was bedeutet, dass unterschiedlicher Code (normalerweise Bibliotheken mit C-Sprachschnittstellen) zusammenarbeiten kann. Seine Verwendung in der Datenwissenschaft und im maschinellen Lernen ist in diesem Sinne, aber das ist nur eine Inkarnation der allgemeinen Idee. Wenn Sie Anwendungen oder Programmdomänen haben, die Sie anhängen möchten, aber nicht direkt miteinander kommunizieren können, können Sie sie mit Python verbinden.

Wo Python zu kurz kommt

Erwähnenswert sind auch die Aufgaben, für die Python nicht geeignet ist.

Python ist eine Hochsprache und daher nicht für die Programmierung auf Systemebene geeignet. Gerätetreiber oder Betriebssystemkerne sind nicht im Bilde.

Es ist auch nicht ideal für Situationen, in denen plattformübergreifende eigenständige Binärdateien erforderlich sind. Sie könnten eine eigenständige Python-App für Windows, MacOS und Linux erstellen, aber nicht elegant oder einfach.

Schließlich ist Python nicht die beste Wahl, wenn Geschwindigkeit in jedem Aspekt der Anwendung absolute Priorität hat. Dafür sind Sie mit C / C ++ oder einer anderen Sprache dieses Kalibers besser dran.

Wie Python die Programmierung vereinfacht

Die Syntax von Python soll lesbar und sauber sein, mit wenig Vorwand. Eine Standard-Hallo-Welt in Python 3.x ist nichts anderes als:

drucken ("Hallo Welt!")

Python bietet viele syntaktische Elemente, um viele gängige Programmabläufe präzise auszudrücken. Stellen Sie sich ein Beispielprogramm zum Lesen von Zeilen aus einer Textdatei in ein Listenobjekt vor und entfernen Sie dabei jede Zeile von ihrem abschließenden Zeilenumbruchzeichen:

mit open ('myfile.txt') als my_file:

    file_lines = [x.rstrip ('\ n') für x in my_file]

Die with/asKonstruktion ist ein Kontextmanager , der eine effiziente Möglichkeit bietet, ein Objekt für einen Codeblock zu instanziieren und es dann außerhalb dieses Blocks zu entsorgen. In diesem Fall wird das Objekt my_filemit der open() Funktion instanziiert . Dies ersetzt mehrere Zeilen Boilerplate, um die Datei zu öffnen, einzelne Zeilen daraus zu lesen und sie dann zu schließen.

Die [x … for x in my_file]Konstruktion ist eine weitere Python-Eigenart, das Listenverständnis . Damit kann ein Element, das andere Elemente enthält (hier my_fileund die darin enthaltenen Zeilen), durchlaufen werden, und jedes iterierte Element (dh jedes Element x) kann verarbeitet und automatisch an eine Liste angehängt werden.

Sie könntenfor… in Python so etwas wie eine formale Schleife schreiben , ähnlich wie in einer anderen Sprache. Der Punkt ist, dass Python die Möglichkeit hat, Dinge wie Schleifen, die über mehrere Objekte iterieren, wirtschaftlich auszudrücken und eine einfache Operation für jedes Element in der Schleife auszuführen, oder mit Dingen zu arbeiten, die eine explizite Instanziierung und Entsorgung erfordern.

Mit solchen Konstruktionen können Python-Entwickler Knappheit und Lesbarkeit in Einklang bringen.

Die anderen Sprachfunktionen von Python sollen allgemeine Anwendungsfälle ergänzen. Die meisten modernen Objekttypen - beispielsweise Unicode-Zeichenfolgen - sind direkt in die Sprache integriert. Datenstrukturen wie Listen, Wörterbücher (dh Hashmaps oder Schlüsselwertspeicher), Tupel (zum Speichern unveränderlicher Sammlungen von Objekten) und Mengen (zum Speichern von Sammlungen eindeutiger Objekte) sind als Standardelemente verfügbar.

Python 2 gegen Python 3

Python ist in zwei Versionen verfügbar, die unterschiedlich genug sind, um viele neue Benutzer auszulösen. Python 2.x, der ältere "Legacy" -Zweig, wird bis 2020 weiterhin unterstützt (dh offizielle Updates erhalten) und kann danach inoffiziell fortbestehen. Python 3.x, die aktuelle und zukünftige Inkarnation der Sprache, verfügt über viele nützliche und wichtige Funktionen, die in Python 2.x nicht enthalten sind, z. B. neue Syntaxfunktionen (z. B. der „Walross-Operator“), bessere Parallelitätskontrollen und vieles mehr effizienter Dolmetscher.

Die Einführung von Python 3 wurde am längsten durch den relativen Mangel an Bibliotheksunterstützung von Drittanbietern verlangsamt. Viele Python-Bibliotheken unterstützen nur Python 2, was das Wechseln erschwert. In den letzten Jahren ist die Anzahl der Bibliotheken, die nur Python 2 unterstützen, jedoch zurückgegangen. Alle gängigen Bibliotheken sind jetzt sowohl mit Python 2 als auch mit Python 3 kompatibel. Heute ist Python 3 die beste Wahl für neue Projekte. Es gibt keinen Grund, Python 2 zu wählen, es sei denn, Sie haben keine Wahl. Wenn Sie mit Python 2 nicht weiterkommen, stehen Ihnen verschiedene Strategien zur Verfügung.

Pythons Bibliotheken

Der Erfolg von Python beruht auf einem reichen Ökosystem von Software von Erst- und Drittanbietern. Python profitiert sowohl von einer starken Standardbibliothek als auch von einer großzügigen Auswahl an leicht erhältlichen und leicht zu verwendenden Bibliotheken von Drittentwicklern. Python wurde durch jahrzehntelange Expansion und Beiträge bereichert.

Die Standardbibliothek von Python bietet Module für allgemeine Programmieraufgaben - Mathematik, Zeichenfolgenbehandlung, Datei- und Verzeichniszugriff, Netzwerk, asynchrone Operationen, Threading, Multiprozessverwaltung usw. Es enthält aber auch Module, die allgemeine Programmieraufgaben auf hoher Ebene verwalten, die von modernen Anwendungen benötigt werden: Lesen und Schreiben strukturierter Dateiformate wie JSON und XML, Bearbeiten komprimierter Dateien, Arbeiten mit Internetprotokollen und Datenformaten (Webseiten, URLs, E-Mail). Auf fast jeden externen Code, der eine C-kompatible Fremdfunktionsschnittstelle verfügbar macht, kann mit dem Python- ctypesModul zugegriffen werden.

Die Standard-Python-Distribution bietet außerdem eine rudimentäre, aber nützliche plattformübergreifende GUI-Bibliothek über Tkinter und eine eingebettete Kopie der SQLite 3-Datenbank.

Die Tausenden von Bibliotheken von Drittanbietern, die über den Python Package Index (PyPI) verfügbar sind, sind das stärkste Beispiel für die Popularität und Vielseitigkeit von Python.

Zum Beispiel:

  • Die BeautifulSoup-Bibliothek bietet eine All-in-One-Toolbox zum Scrapen von HTML - selbst kniffligem, fehlerhaftem HTML - und zum Extrahieren von Daten daraus.
  • Anfragen machen das Arbeiten mit HTTP-Anfragen in großem Maßstab schmerzlos und einfach.
  • Frameworks wie Flask und Django ermöglichen die schnelle Entwicklung von Webdiensten, die sowohl einfache als auch erweiterte Anwendungsfälle umfassen.
  • Mit Apache Libcloud können mehrere Cloud-Dienste über das Python-Objektmodell verwaltet werden.
  • NumPy, Pandas und Matplotlib beschleunigen mathematische und statistische Operationen und erleichtern die Erstellung von Datenvisualisierungen.

Pythons Kompromisse

Wie C #, Java und Go verfügt Python über eine Speicherverwaltung mit Speicherbereinigung, sodass der Programmierer keinen Code implementieren muss, um Objekte zu verfolgen und freizugeben. Normalerweise erfolgt die Speicherbereinigung automatisch im Hintergrund. Wenn dies jedoch ein Leistungsproblem darstellt, können Sie es manuell auslösen oder vollständig deaktivieren oder ganze Bereiche von Objekten als Leistungsverbesserung deklarieren, die von der Speicherbereinigung ausgenommen sind.

Ein wichtiger Aspekt von Python ist seine Dynamik . Alles in der Sprache, einschließlich der Funktionen und Module selbst, wird als Objekt behandelt. Dies geht zu Lasten der Geschwindigkeit (dazu später mehr), erleichtert jedoch das Schreiben von Code auf hoher Ebene erheblich. Entwickler können komplexe Objektmanipulationen mit nur wenigen Anweisungen durchführen und sogar Teile einer Anwendung als Abstraktionen behandeln, die bei Bedarf geändert werden können.

Pythons Verwendung von signifikanten Leerzeichen wurde als eines der besten und schlechtesten Attribute von Python bezeichnet. Der Einzug in der zweiten Zeile dient nicht nur der Lesbarkeit. Es ist Teil der Python-Syntax. Python-Interpreter lehnen Programme ab, die keinen korrekten Einzug verwenden, um den Kontrollfluss anzuzeigen.

mit open ('myfile.txt') als my_file:

    file_lines = [x.rstrip ('\ n') für x in my_file]

Syntaktische Leerzeichen können zu Faltenbildung in der Nase führen, und einige Leute lehnen Python aus diesem Grund ab. Aber strenge Einrückungsregeln sind in der Praxis weit weniger aufdringlich, als sie theoretisch erscheinen, selbst mit den minimalsten Code-Editoren, und das Ergebnis ist Code, der sauberer und lesbarer ist.

Ein weiteres potenzielles Problem, insbesondere für Benutzer aus Sprachen wie C oder Java, ist die Art und Weise, wie Python mit der Variablentypisierung umgeht. Standardmäßig verwendet Python die dynamische oder "Enten" -Typisierung - ideal für schnelles Codieren, aber möglicherweise problematisch in großen Codebasen. Allerdings hat Python kürzlich Unterstützung für optionale Hinweise zum Typ zur Kompilierungszeit hinzugefügt, sodass Projekte, die möglicherweise von statischer Typisierung profitieren, diese verwenden können.

Ist Python langsam? Nicht unbedingt

Eine häufige Einschränkung bei Python ist, dass es langsam ist. Objektiv ist es wahr. Python-Programme werden im Allgemeinen viel langsamer ausgeführt als entsprechende Programme in C / C ++ oder Java. Einige Python-Programme sind um eine Größenordnung oder mehr langsamer.