Zu diesem Thema gibt es ein Tutorial!

Python (Programmiersprache): Unterschied zwischen den Versionen

Aus KGS-Wiki
K (Links gefixt)
Zeile 32: Zeile 32:
</syntaxhighlight>In anderen Sprachen wie [[C (Programmiersprache)|C]] oder [[Java (Programmiersprache)|Java]] wäre dazu viel mehr Aufwand nötig.
</syntaxhighlight>In anderen Sprachen wie [[C (Programmiersprache)|C]] oder [[Java (Programmiersprache)|Java]] wäre dazu viel mehr Aufwand nötig.


Bei der Definition von [[Variable|Variablen]] müssen in Python keine [[Datentyp|Datentypen]] oder Informationen über die Sichtbarkeit angegeben werden, ebensowenig bei [[Parameter|Parametern]] und Rückgabewerten von [[Unterprogramm#Funktion|Funktionen]].
Bei der Definition von [[Variable (Informatik)|Variable]]n müssen in Python keine [[Datentyp]]en oder Informationen über die [[Sichtbarkeit]] angegeben werden, ebensowenig bei [[Parameter]]n und Rückgabewerten von [[Unterprogramm#Funktion|Funktionen]].


Auch beim [[Kontrollfluss]] wird auf größtmögliche Lesbarkeit gesetzt. Jede Anweisung ''muss'' in einer eigenen Zeile stehen, am Ende von Anweisungen müssen keine Satzzeichen stehen. Bei Kontrollstrukturen wie [[Bedingte Anweisung|bedingten Anweisungen]] oder [[Bedingte Wiederholung|bedingten Wiederholungen]] wird ausschließlich über Einrückungen geregelt, welche Zeilen von der Bedingung abhängig sind, nicht über Klammern.<syntaxhighlight lang="python" line="1">
Auch beim [[Kontrollfluss]] wird auf größtmögliche Lesbarkeit gesetzt. Jede Anweisung ''muss'' in einer eigenen Zeile stehen, am Ende von Anweisungen müssen keine Satzzeichen stehen. Bei Kontrollstrukturen wie [[Bedingte Anweisung|bedingten Anweisungen]] oder [[Bedingte Wiederholung|bedingten Wiederholungen]] wird ausschließlich über Einrückungen geregelt, welche Zeilen von der Bedingung abhängig sind, nicht über Klammern.<syntaxhighlight lang="python" line="1">
Zeile 49: Zeile 49:
Mit Python kann man nahezu alles machen:
Mit Python kann man nahezu alles machen:


* Webentwicklung: Mit [[Frameworks]] wie Django oder Flask können robuste Webapplikationen erstellt werden.
* Webentwicklung: Mit [[Framework]]s wie Django oder Flask können robuste Webapplikationen erstellt werden.
*Datenanalyse: Bibliotheken wie Pandas und NumPy bieten Tools zur Datenmanipulation und -analyse.
*Datenanalyse: Bibliotheken wie Pandas und NumPy bieten Tools zur Datenmanipulation und -analyse.
* [[Maschinelles Lernen]]: Mit [[TensorFlow]], Keras und scikit-learn kann man in die Welt des maschinellen Lernens eintauchen.
* [[Maschinelles Lernen]]: Mit [[TensorFlow]], Keras und scikit-learn kann man in die Welt des maschinellen Lernens eintauchen.

Version vom 3. April 2024, 16:19 Uhr

Das Logo von Python

Python, benannt nach der britischen Komiker-Truppe "Monty Python"[1], wurde Ende der 1980er Jahre von Guido van Rossum als Nachfolger der ABC-Sprache entwickelt. Seitdem hat sie sich zu einer der beliebtesten und am weitesten verbreiteten Programmiersprachen entwickelt. Python zeichnet sich durch eine sehr einfache Syntax und eine hohe Lesbarkeit aus. Daraus ergibt sich eine niedrige Lernschwelle, weswegen Python insbesondere bei Hobbyprogrammierys sehr beliebt ist.

The Zen of Python

Die Philosophie, die Python zugrunde liegt, wird halb ironisch im Zen of Python[2] beschrieben, das von Tim Peters verfasst wurde und mit dem Befehl import this von jedem Python-Interpreter ausgegeben wird:

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.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch[3].
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

Der Zen of Python umfasst grobe Programmier-Richtlinien wie "Schön[er Code] ist besser als hässlich[er Code]", "Lesbarkeit zählt" oder "Einfach[er Code] ist besser als komplex[er Code]".

Die grundlegende Philosophie dahinter ist, dass Programme lesbar und einfach sein sollten, insbesondere einfach zu erklären.

Einfachheit und Lesbarkeit

Zur Einfachheit gehört, dass Python wenig Boilerplate-Code voraussetzt. Ein Programm, das den Text Hello World! ausgibt, sieht in Python einfach so aus:

print("Hello world")

In anderen Sprachen wie C oder Java wäre dazu viel mehr Aufwand nötig.

Bei der Definition von Variablen müssen in Python keine Datentypen oder Informationen über die Sichtbarkeit angegeben werden, ebensowenig bei Parametern und Rückgabewerten von Funktionen.

Auch beim Kontrollfluss wird auf größtmögliche Lesbarkeit gesetzt. Jede Anweisung muss in einer eigenen Zeile stehen, am Ende von Anweisungen müssen keine Satzzeichen stehen. Bei Kontrollstrukturen wie bedingten Anweisungen oder bedingten Wiederholungen wird ausschließlich über Einrückungen geregelt, welche Zeilen von der Bedingung abhängig sind, nicht über Klammern.

if x > 0:
    print("x ist positiv")
else:
    print("x ist nicht positiv")

while x > 0:
    x = x - 1

Ohne korrekte Einrückungen kann das Programm nicht ausgeführt werden. So "erzwingt" Python vom Programmierer eine gewisse Lesbarkeit.

Zur Lesbarkeit trägt auch bei, dass Python stärker auf Schlüsselwörter setzt, wo in anderen Sprachen Symbole verwendet werden. Beispiele sind die logischen Operatoren and, or und not.

Vielseitigkeit

Mit Python kann man nahezu alles machen:

  • Webentwicklung: Mit Frameworks wie Django oder Flask können robuste Webapplikationen erstellt werden.
  • Datenanalyse: Bibliotheken wie Pandas und NumPy bieten Tools zur Datenmanipulation und -analyse.
  • Maschinelles Lernen: Mit TensorFlow, Keras und scikit-learn kann man in die Welt des maschinellen Lernens eintauchen.
  • Automation: Mit Python lassen sich repetitive Aufgaben automatisieren, beispielsweise Dateien zu verschieben oder Webinhalte zu scrapen.
  • Spieleentwicklung: Mit Pygame lassen sich einfache Videospiele entwickeln.
  • Embedded Systems: Mit MicroPython kann man Python sogar auf Mikrocontrollern laufen lassen.

Dies wird auch durch das umfangreiche Bibliothekssystem von Python begünstigt: für sehr viele Anwendungen stehen Bibliotheken bereit, die mit dem Schlüsselwort import in ein Python-Programm geladen werden können.

Beispiel: Ein einfacher Webserver

Mit Python kann man mit nur wenigen Zeilen Code einen einfachen Webserver erstellen:

from http.server import SimpleHTTPRequestHandler, HTTPServer

PORT = 8080

with HTTPServer(("localhost", PORT), SimpleHTTPRequestHandler) as server:

    print(f"Server läuft auf Port {PORT}")

    server.serve_forever()

Dieser Code erstellt einen einfachen Webserver, der den Inhalt des aktuellen Verzeichnisses anzeigt und unter der Adresse http://localhost:8080 geöffnet werden kann.

Quellen

  1. Python FAQ: "Why is it called Python?🇬🇧
  2. The Zen of Python 🇬🇧
  3. Dies ist eine Anspielung auf Guido van Rossum, den niederländischen Entwickler von Python

Siehe auch

Weblinks