Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.

Pythonist ein interpretiertes, interaktives, objektorientiertes Python (unter Verwendung von classes), dynamische und stark typisierteProgrammiersprache, die für eine breite Palette von Anwendungenverwendet wird. Es enthält Module, Ausnahmen, dynamische Typisierung, dynamische Datentypen auf sehr hoher Ebene und Klassen. Python kombiniert bemerkenswerte Leistung mit sehr klarer Syntax. Es verfügt über Schnittstellen zu vielen Systemaufrufen und Bibliotheken sowie zu verschiedenen Fenstersystemen und ist in coder c+erweiterbar+. Es kann auch als Erweiterungssprache für Anwendungen verwendet werden, die eine programmierbare Schnittstelle benötigen. Schließlich ist Python portabel: Es läuft auf vielen Unix-Varianten, auf dem Mac und unter Windows 2000 und höher.

Die Sprache wird mit einer großen Standardbibliothek geliefert, die Bereiche wie Zeichenfolgenverarbeitung (reguläre Ausdrücke, Unicode, Berechnung von Unterschieden zwischen Dateien), Internetprotokolle (HTTP-, FTP-, SMTP-, XML-RPC-, POP-, IMAP- und CGI-Programmierung) und Software abdeckt Engineering (Unit-Test, Protokollierung, Profilerstellung und Analyse von Python-Code) und Betriebssystemschnittstellen (Systemaufrufe, Dateisysteme und TCP / IP-Sockets). Sehen Sie sich das Inhaltsverzeichnis für Die Python-Standardbibliothekan, um eine Vorstellung davon zu erhalten, was verfügbar ist. Eine Vielzahl von Erweiterungen von Drittanbietern ist ebenfalls verfügbar. Konsultieren Sie den Python-Paketindex, um Pakete zu finden, die für Sie von Interesse sind.

Mit Python können Programmierer Konzepte in weniger Codezeilen ausdrücken, als dies in vielen anderen Sprachen wie C möglich wäre, und die Sprache verfügt über Konstrukte, mit denen klare Programme in einer Vielzahl von Domänen erstellt werden können.

Beispiel:

Python-Programm

print("Hello, Stack Overflow!")

Gegen

C-Programm

#include <stdio.h>
int main(void) {
    printf("Hello, Stack Overflow!");
    return 0;
}

Python wurde ursprünglich von Guido van Rossumerstellt und 1991 erstmals veröffentlicht. Guido Van Rossum wählte Python als Arbeitstitel für das Projekt , in einer etwas respektlosen Stimmung (und ein großer Fan von Monty Pythons Flying Circus).

Python 2 (16. Oktober 2000 - 1. Januar 2020) war offiziell Sonnenuntergangund Python 3 (3) Dezember 2008) ist die einzige unterstützte, gewartete und verbesserte Hauptversion ab dem 1. Januar 2020. Wir haben eine Community von Menschen aus beiden Welten. Wenn Sie eine Frage haben, die sich auf eine bestimmte Version bezieht, sollten Sie die Version und Implementierung erwähnen Sie verwenden, wenn Sie eine Frage zu Python stellen (siehe Abschnitt "Tagging-Empfehlung" weiter unten).

Python unterstützt mehrere Programmierparadigmen, einschließlich objektorientierter, imperativer und funktionaler Programmierstile. Es verfügt über ein vollständig dynamisches Typsystem und eine automatische Speicherverwaltung, ähnlich der von Scheme, Ruby, Perl und Tcl.

Wie andere dynamische Sprachenwird Python häufig als scriptingwird aber auch in einer Vielzahl von Nicht-Skript-Kontexten verwendet. Mit Tools von Drittanbietern kann Python-Code in eigenständige ausführbare Programme gepackt werden. Python-Interpreter sind für viele Betriebssysteme verfügbar.

CPython, die Referenzimplementierung von Python, ist freie und Open-Source-Software. Es verfügt über ein Community-basiertes Entwicklungsmodell, ebenso wie fast alle alternativen Implementierungen. Es gibt eine Vielzahl von Implementierungen, die für bestimmte Umgebungen oder Aufgaben besser geeignet sind (siehe Python-Implementierungenim Python-Wiki).

Die Philosophie von Python ist in The Zen of Pythonvon Tim Peters kurz formuliert und kann gelesen werden durch Ausgabe dieses Befehls im interaktiven Python-Interpreter:

>>> import this

Im Gegensatz zu vielen anderen Sprachen verwendet Python eine einrückungsbasierte Syntax (in der Tabulatoren und Leerzeichen nicht austauschbar sind). Dies kann für Programmierer, die mit der Verwendung von geschweiften Klammern vertraut sind, gewöhnungsbedürftig sein.

>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance
>>>

Um den Übergang zu erleichtern, wird die Verwendung eines ordnungsgemäß konfigurierten Texteditors oder einer IDE empfohlen. Python wird mit einer grundlegenden IDE namens IDLE(python-idle), um Ihnen den Einstieg zu erleichtern. Weitere beliebte Beispiele sind die Charityware Vim, die kostenlosen GNU Emacs, Eclipse + PyDev oder PyCharm. In dieser IDE-Vergleichslistefinden Sie viele weitere Alternativen.

Es gibt auch einen Styleguide für Python mit dem Namen PEP 8, mit dem Python-Code besser lesbar gemacht werden soll und konsequent. Dieses Handbuch wird (sollte) in der gesamten Python-Entwicklergemeinschaft befolgt.


Tagging-Empfehlung:

Verwenden Sie das python-Tag für alle Python-bezogenen Fragen. Wenn Sie der Meinung sind, dass Ihre Frage spezifische Probleme für einzelne Versionen enthält, verwenden Sie python-3.xoder python-2.7, zusätzlich zum python-Tag. Wenn Sie der Meinung sind, dass Ihre Frage möglicherweise noch spezifischer ist, können Sie ein versionierungsspezifisches Tag wie python-3.5oder python.com>hinzufügen-3,6 usw.

Erwägen Sie außerdem, das Tag für die spezifische Implementierung (jython, pypyusw.) einzuschließen, wenn Sie verwenden eine andere als cpython- die Verwendung von cpythonwird vorausgesetzt, sofern nicht ausdrücklich anders angegeben.


Verweise:


Installation externer Pakete:

  • Pippip

    Die meisten Python-Bibliotheken, die für einfache und erweiterte Skripte verwendet werden, werden mit pip, dem Python Package Installer, heruntergeladen. Sie können zusätzliche Pakete installieren und verwalten, die nicht Teil der Python-Standardbibliothek sind. Die meisten Python-Distributionen werden mit vorinstalliertem pip geliefert . Allgemeine Syntax:

$ pip install SomePackage
[...]
Successfully installed SomePackage
  • easy_install easy-install

    easy_install wurde 2004 als Teil von setuptools veröffentlicht. Zu dieser Zeit war es bemerkenswert, Pakete von PyPI mithilfe von Anforderungsspezifizierern zu installieren und Abhängigkeiten automatisch zu installieren. Easy Install ist veraltet. Benutze es nicht. Verwenden Sie stattdessen pip.


Beliebte Python-Bibliotheken für den allgemeinen Gebrauch:

  • Anfragenrequests

    Eine einfache Python-Bibliothek zum Erstellen von HTTP-Anforderungen. Anfragen werden als "Für Menschen" vermarktet. Die Bibliothek soll die vielen Methoden von Python vereinfachen und universalisieren, mit denen HTTP-Anforderungen lesbar und benutzerfreundlich gestellt werden können. Funktionen wie Keep-Alive und Verbindungspooling werden automatisch behandelt, um ein Höchstmaß an Einfachheit zu gewährleisten.

  • Kissenpython-imaging-library

    Pillow wird als "freundliche Gabel" des Python PIL-Moduls beschrieben, einer nicht gepflegten, aber nützlichen Imaging-Bibliothek. Die Bibliothek verwendet C-APIs, um eine einfache Python-Oberfläche zum Ändern und Bearbeiten von Bilddateien auf viele verschiedene Arten bereitzustellen.

  • Scrapyscrapy

    Scrapy ist ein schnelles Framework für das Crawlen und Web-Scraping auf hoher Ebene, mit dem Websites gecrawlt und strukturierte Daten von ihren Seiten extrahiert werden. Es kann für eine Vielzahl von Zwecken verwendet werden, vom Data Mining über die Überwachung bis hin zu automatisierten Tests.

  • Schöne Suppebeautifulsoupbs4

    Beautiful Soup ist ein Python-Paket zum Parsen von HTML- und XML-Dokumenten. Es wird ein Analysebaum für analysierte Seiten erstellt, mit dem Daten aus HTML extrahiert werden können. Dies ist nützlich für das Web-Scraping. Es ist für Python 2.7 und Python 3 verfügbar.

  • nltknltk

    Das Natural Language Toolkit (NLTK) ist eine Plattform zum Erstellen von Python-Anwendungen für die Arbeit mit Daten der menschlichen Sprache und die Verarbeitung von Sätzen. Es bietet benutzerfreundliche Schnittstellen zu über 50 Korpora und lexikalischen Ressourcen wie WordNet sowie eine Reihe von Textverarbeitungsbibliotheken für Klassifizierung, Tokenisierung, Stemming, Tagging, Parsing und semantisches Denken sowie Wrapper für NLP mit industrieller Stärke Bibliotheken.


Beliebte Web-Frameworksbasierend auf Python:

Wenn Ihre Frage etwas mit einem dieser Frameworks zu tun hat, stellen Sie bitte sicher, dass Sie das entsprechende Tag einfügen.

  • Djangodjango

    Das Web-Framework für Perfektionisten (mit Fristen). Django macht es einfacher, bessere Web-Apps schneller und mit weniger Code zu erstellen. Django ist ein Python-Webframework auf hoher Ebene, das eine schnelle Entwicklung und ein sauberes, pragmatisches Design fördert. Damit können Sie schnell leistungsstarke, elegante Webanwendungen erstellen. Django konzentriert sich darauf, so viel wie möglich zu automatisieren und das DRY-Prinzip (Don't Repeat Yourself)einzuhalten.

  • Flascheflask

    Flask ist ein leichtes Micro-Framework und eine Drittanbieter-Bibliothek für Python, die auf Werkzeug, Jinja 2 und guten Absichten basiert. Es bietet eine monolithische Struktur und erzwingt keine Abhängigkeiten, was eine feinere Kontrolle und größere Entwicklungsfreiheit ermöglicht.

  • Quartquart

    Das Quart ist eine Weiterentwicklung der Flask-API, um mit Asyncio zusammenzuarbeiten und eine Reihe von Funktionen bereitzustellen, die in Flask nicht vorhanden oder möglich sind.

  • Tornadotornado

    Tornado ist ein Python-Webframework und eine asynchrone Netzwerkbibliothek. Durch die Verwendung der nicht blockierenden Netzwerk-E / A kann Tornado auf Zehntausende offener Verbindungen skaliert werden. Dies macht es ideal für lange Abfragen, WebSockets und andere Anwendungen, die eine langlebige Verbindung zu jedem Benutzer erfordern.

  • CherryPycherrypy

    CherryPy ist ein objektorientiertes Pythonic-Webframework, mit dem Entwickler Webanwendungen erstellen können, ähnlich wie bei jedem anderen objektorientierten Python-Programm. Dies führt zu einer geringeren Menge an Quellcode, der in kürzerer Zeit entwickelt wird. CherryPy ist seit über 17 Jahren im Einsatz und wird an vielen Standorten in der Produktion eingesetzt, vom einfachsten bis zum anspruchsvollsten.

  • Pyramidepyramid

    Ein leichtes Webframework, das Flexibilität und schnelle Entwicklung betont. Es kombiniert die besten Ideen aus den Welten von Ruby, Python und Perl und bietet ein strukturiertes, aber äußerst flexibles Python-Webframework. Es ist auch eines der ersten Projekte, das den aufkommenden WSGI-Standard nutzt, der eine umfassende Wiederverwendung und Flexibilität ermöglicht, jedoch nur, wenn Sie ihn benötigen.

  • TurboGearsturbogears

    TurboGears ist ein skalierbares Webframework, das von einem Minimalmodus-Setup zu einer Full-Stack-Webanwendung wechseln kann. Es wurde 2005 von Kevin Dangoor erstellt und die aktuelle Entwicklung von TurboGears2 (turbogears2) wird von Mark Ramm geleitet. Die aktuelle stabile Version von TurboGears ist TurboGears 2.4.1, veröffentlicht am 3. September 2019

  • web.pyweb.py

    web.py ist ein Webframework für Python, das ebenso einfach wie leistungsstark ist. web.py ist gemeinfrei: Sie können es für jeden Zweck ohne Einschränkungen verwenden. Mit web.py können Sie Web-Apps in Python schreiben.

  • Grokgrok

    Aufbauend auf den vorhandenen Zope 3-Bibliotheken, soll jedoch eine einfachere Lernkurve und eine agilere Entwicklungserfahrung bieten. Grok legt dazu einen Schwerpunkt auf Konvention über Konfiguration und DRY (Don't Repeat Yourself).

  • Flasche bottle

    Die Flasche ist ein schnelles, einfaches und leichtes WSGI Micro Web-Framework für Python. Es wird als einzelnes Dateimodul verteilt und hat keine anderen Abhängigkeiten als die Python-Standardbibliothek.

  • web2pyweb2py

    web2py ist ein kostenloses Open Source-Full-Stack-Framework für die schnelle Entwicklung schneller, skalierbarer, sicherer und portabler datenbankgesteuerter webbasierter Anwendungen.

  • Falconfalconframework

    Falcon ist ein minimales Python-Webframework zum Erstellen von Microservices, App-Backends und übergeordneten Frameworks und unterstützt den REST-Architekturstil. Es hat sowohl Community- als auch kommerzielle Versionen.

  • verdrehttwisted

    Twisted ist eine ereignisgesteuerte Open-Source-Netzwerk-Engine. Es ist nützlich für die Implementierung von Clients und Servern und lässt sich auf große Websites und auf eingebettete Geräte skalieren. Twisted erleichtert die Implementierung benutzerdefinierter Netzwerkanwendungen.


Beliebte Python GUI Frameworks basierend auf Python

  • Kivykivy

    Kivy ist ein OpenGL ES 2-beschleunigtes Framework für die Erstellung neuer Benutzeroberflächen. Es unterstützt mehrere Plattformen, nämlich Windows, Mac OS X, Linux, Android iOS und Raspberry Pi. Es ist Open Source und enthält über 20 Widgets im Toolkit. Zusätzliche Materialobjekte sind über KivyMDverfügbar.

  • PyQTpyqt

    PyQT ist eine der bevorzugten plattformübergreifenden Python-Bindungen, die die Qt-Bibliothek für das Qt-Anwendungsentwicklungsframework (im Besitz von Nokia) implementieren. Derzeit ist PyQT für Unix / Linux, Windows, Mac OS X und Sharp Zaurus verfügbar. Es kombiniert das Beste aus Python und Qt und es liegt beim Programmierer, zu entscheiden, ob ein Programm durch Codierung oder mithilfe von Qt Designer zum Erstellen visueller Dialoge erstellt werden soll.

    Es ist sowohl in kommerzieller als auch in GPL-Lizenz erhältlich. Obwohl einige Funktionen in der kostenlosen Version möglicherweise nicht verfügbar sind, können Sie Ihre Anwendung unter Open Source verwenden, wenn sie Open Source ist.

    Die neueste Iteration von PyQt ist v5

  • Tkintertkinter

    Tkinter wird üblicherweise mit Python unter Verwendung von Tk gebündelt und ist das Standard-GUI-Framework von Python. Es ist beliebt für seine Einfachheit und grafische Benutzeroberfläche. Es ist Open Source und unter der Python-Lizenz verfügbar. Einer der Vorteile der Wahl von Tkinter besteht darin, dass es standardmäßig eine Fülle von Ressourcen gibt, sowohl Codes als auch Nachschlagewerke. Da die Community alt und aktiv ist, gibt es viele Benutzer, die Ihnen bei Fragen weiterhelfen können.

  • PyGUIpygui

    PyGUI ist ein plattformübergreifendes Framework für grafische Anwendungen für Unix, Macintosh und Windows. Im Vergleich zu einigen anderen GUI-Frameworks ist PyGUI bei weitem das einfachste und leichteste von allen, da die API ausschließlich mit Python synchronisiert ist. PyGUI fügt sehr wenig Code zwischen der GUI-Plattform und Ihrer Python-Anwendung ein. Daher zeigt die Anzeige der Anwendung normalerweise die natürliche GUI der Plattform an.


Beliebte mathematisch-wissenschaftliche Computerbibliotheken in Python

  • NumPynumpy

    NumPy ist das grundlegende Paket für wissenschaftliches Rechnen mit Python. Es enthält unter anderem:

    • ein leistungsfähiges N-dimensionales Array-Objekt
    • ausgefeilte (Rundfunk-) Funktionen
    • Werkzeuge zur Integration von C / C ++ - und Fortran-Code
    • nützliche lineare Algebra, Fourier Transformations- und Zufallszahlenfunktionen

    Diese Funktionen ermöglichen auch die Verwendung von NumPy in universellen Datenbankanwendungen.

  • SciPyscipy

    SciPy ist eine Open-Source-Bibliothek für die Programmiersprache Python, die aus mathematischen Algorithmen und Funktionen besteht, die häufig in Wissenschaft und Technik verwendet werden. SciPy enthält Algorithmen und Tools für Aufgaben wie Optimierung, Clustering, diskrete Fourier-Transformationen, lineare Algebra, Signalverarbeitung und mehrdimensionale Bildverarbeitung. SciPy ist eng mit NumPy verwandt und hängt von vielen NumPy-Funktionen ab, einschließlich eines mehrdimensionalen Arrays, das als grundlegende Datenstruktur in SciPy verwendet wird.

  • matplotlibmatplotlib

    matplotlib ist eine Plotbibliothek für die Programmiersprache Python und ihre numerische Mathematikerweiterung NumPy. Es bietet eine objektorientierte API zum Einbetten von Plots in Anwendungen unter Verwendung allgemeiner GUI-Toolkits wie wxPython, Qt oder GTK. Es gibt auch eine prozedurale "Pylab" -Schnittstelle, die auf einer Zustandsmaschine (wie OpenGL) basiert und der von MATLAB sehr ähnlich ist.

  • Pandaspandas

    Pandas ist eine Open-Source-BSD-lizenzierte Bibliothek, die leistungsstarke, benutzerfreundliche Datenstrukturen und Datenanalysetools für die Programmiersprache Python bietet. Pandas integriert viele andere Bibliotheksfunktionen, nämlich die Matrixoperationen von NumPy und die Plotfunktionen von Matplotlib. 10 Minuten bis Pandas a>ist ein gutes Tutorial für die erste Begegnung mit Pandas.

  • theano theano

    Theano ist eine Python-C-basierte, weit verbreitete Bibliothek, die sich aufgrund der Optimierungen des Python-Schnittstellencodes für hochberechnete mathematische Aufgaben eignet und daher mithilfe ihrer C-basierten Routinen stark optimiert wird. Es ist auch eine sehr beliebte Bibliothek für Forscher des maschinellen Lernens. Es verfügt über eine hochoptimierte automatische Differenzierung, die die Implementierung hochkomplizierter Funktionen erleichtert und deren Gradienten fehlerfrei berechnet.

  • Mixerblender

    Blender ist eine kostenlose Open-Source-3D-Animationssuite. Es unterstützt die gesamte 3D-Pipeline - Modellierung, Rigging, Animation, Simulation, Rendering, Compositing und Bewegungsverfolgung, sogar Videobearbeitung und Spieleerstellung.

  • Scikit-Learnscikit-learn

    scikit-learn ist eine kostenlose Open-Source-Bibliothek für maschinelles Lernen, die in Python geschrieben wurde. Es unterstützt das Trainieren und Testen vieler verschiedener Arten von Modellen für maschinelles Lernen sowie einige grundlegende Datenverarbeitungstechniken.

  • TensorFlowtensorflow

    TensorFlow ist eine Open-Source-Softwarebibliothek, die vom Google Brain-Team entwickelt wurde. Es ist eine symbolische Mathematikbibliothek, die hauptsächlich für maschinelle Lernanwendungen wie neuronale Netze verwendet wird.


Beliebte C-Erweiterungslösungen:

Mit der Erweiterung C können Sie Ihren Python-Code schneller machen. Wenn Ihre Frage etwas mit einer der nächsten Lösungen zu tun hat, stellen Sie bitte sicher, dass Sie das entsprechende Tag einfügen.

  • ctypesctypes

    ctypes ist ein Python-Paket, das C .dll / .so-Bibliotheken in reinem Python umschließt.

  • SWIGswig

    SWIG ist ein Schnittstellen-Compiler, der in C und C ++ geschriebene Programme mit Skriptsprachen wie Python verbindet.

  • Cythoncython

    Cython ist ein optimierender statischer Compiler sowohl für die Programmiersprache Python als auch für die erweiterte Programmiersprache Cython (basierend auf Pyrex). Es macht das Schreiben von C-Erweiterungen für Python so einfach wie Python selbst.


Gemeinschaft

Chat-Räume

  • Chatten Sie auf dem dedizierten IRC-Kanal #python auf Freenode für alles, was mit Python zu tun hat. Suchen Sie bei Interesse unter Python IRCnach einem bestimmten alternativen Kanal.

  • Chatten Sie mit anderen Stack Overflow-Benutzern im Python-Chatroomüber Python.

Andere Seiten


Kostenlose Python-Programmierbücher


Interaktives Python-Lernen

  • Codecademy- Lernen Sie die Grundlagen von Python und dynamischer Programmierung
  • CodeSkulptor- Interaktive Online-IDE für die Python 2-Programmierung
  • CodeSkulptor 3- Interaktive Online-IDE für die Python 3-Programmierung
  • Coursera- Online-Kurs zur Einführung in die interaktive Python-Programmierung
  • CheckiO- Eine Spielwelt, die Sie mit Ihren Python-Programmierkenntnissen erkunden können
  • Dataquest- Interaktive Python-Kurse für Data Science
  • Repl.it- Online-Interpreter für Python 2 und 3, der das Speichern und Freigeben von Code vereinfacht
  • PyCharm Edu- Eine Desktop-Anwendung, die interaktives Python-Lernen bietet
  • Interaktives Python- Enthält eine modifizierte, interaktive Version von Wie man wie ein Informatiker denkt
  • Python-Tutor- Visualisierung und / oder Live-Codierung in Python
  • Informatikkreise- Lernen Sie Python 3 auf halbinteraktive Weise.

Python Online-Kurse


Python-Video-Tutorials


Python für Wissenschaftler


Python Online IDE

  • ideone- Eine Online-IDE mit Unterstützung für andere beliebte Sprachen.
  • repl- Sofortige Programmierumgebung für Ihre Lieblingssprache
  • Python-Shell- Online-Konsole von PythonAnywhere
  • Pythonfiddle- Python Cloud IDE
  • pyfiddle- Python 2.7 / 3.6 Online-Konsole

Codequalität

  • Codacy- Automatisierte Codeüberprüfung, um besseren Code schneller zu liefern.
  • Codecov- Dashboard für die Codeabdeckung.
  • CodeFactor- Automatisierte Codeüberprüfung für Git.
  • Landschaft- Gehostete kontinuierliche Python-Codemetriken.

Offizielles Logo


Aktive Podcasts

Inaktive Podcasts