Zu diesem Thema gibt es ein Tutorial!

Python (Programmiersprache): Unterschied zwischen den Versionen

Aus KGS-Wiki
Keine Bearbeitungszusammenfassung
K (Vorlage Python)
Zeile 1: Zeile 1:
[[File:Python logo and wordmark.svg|thumb|rechts|Das Logo von Python]]
[[File:Python logo and wordmark.svg|thumb|rechts|Das Logo von Python]]
[[Python (Programmiersprache)|Python]], benannt nach der britischen Komiker-Truppe "Monty Python"<ref>[https://docs.python.org/3/faq/general.html#why-is-it-called-python Python FAQ: "Why is it called ''Python''?{{Flagge|GB}}] </ref>, 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.  
[[Python (Programmiersprache)|Python]], benannt nach der britischen Komiker-Truppe Monty Python<ref>[https://docs.python.org/3/faq/general.html#why-is-it-called-python Python FAQ: "Why is it called ''Python''?{{Flagge|GB}}] </ref>, 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''==
==''The Zen of Python''==
Die Philosophie, die Python zugrunde liegt, wird halb ironisch im ''Zen of Python''<ref>[https://peps.python.org/pep-0020/ The Zen of Python {{Flagge|GB}}]</ref> beschrieben, das von Tim Peters verfasst wurde und mit dem Befehl <syntaxhighlight lang="python" inline>import this</syntaxhighlight> von jedem Python-[[Interpreter]] ausgegeben wird:
Die Philosophie, die Python zugrunde liegt, wird halb ironisch im ''Zen of Python''<ref>[https://peps.python.org/pep-0020/ The Zen of Python {{Flagge|GB}}]</ref> beschrieben, das von Tim Peters verfasst wurde und mit dem Befehl {{Python|import this}} von jedem Python-[[Interpreter]] ausgegeben wird:
  Beautiful is better than ugly.
  Beautiful is better than ugly.
  Explicit is better than implicit.
  Explicit is better than implicit.
Zeile 28: Zeile 28:


{{Beispiel|
{{Beispiel|
Die folgenden Programmabschnitte prüfen beide, ob eine Zahl <syntaxhighlight lang="python" inline>x</syntaxhighlight> gleich 0 ist:
Die folgenden Programmabschnitte prüfen beide, ob eine Zahl {{Python|x}} gleich 0 ist:
<syntaxhighlight lang="python">
<syntaxhighlight lang="python">
not x
not x
Zeile 38: Zeile 38:


== Einfachheit und Lesbarkeit ==
== Einfachheit und Lesbarkeit ==
Zur Einfachheit gehört, dass Python wenig [[Boilerplate-Code]] voraussetzt. Ein Programm, das den Text <syntaxhighlight lang="python" inline>"Hello World!"</syntaxhighlight> ausgibt, sieht in Python einfach so aus:<syntaxhighlight lang="python">
Zur Einfachheit gehört, dass Python wenig [[Boilerplate-Code]] voraussetzt. Ein Programm, das den Text {{Python|"Hello World!"}} ausgibt, sieht in Python einfach so aus:<syntaxhighlight lang="python" line>
print("Hello world")
print("Hello world")
</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.
Zeile 44: Zeile 44:
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]].
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 [[Kontrollstruktur]]en 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">
if x > 0:
if x > 0:
     print("x ist positiv")
     print("x ist positiv")
Zeile 54: Zeile 54:
</syntaxhighlight>Ohne korrekte Einrückungen kann das Programm nicht ausgeführt werden. So "erzwingt" Python vom Programmierer eine gewisse Lesbarkeit.
</syntaxhighlight>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 [[Logik|logischen Operatoren]] <syntaxhighlight lang="python" inline>and</syntaxhighlight>, <syntaxhighlight lang="python" inline>or</syntaxhighlight> und <syntaxhighlight lang="python" inline>not</syntaxhighlight>.
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 [[Logik|logischen Operatoren]] {{Python|and}}, {{Python|or}} und {{Python|not}}.


==Vielseitigkeit==
==Vielseitigkeit==
Zeile 65: Zeile 65:
*Spieleentwicklung: Mit [[Pygame]] lassen sich einfache Videospiele entwickeln.
*Spieleentwicklung: Mit [[Pygame]] lassen sich einfache Videospiele entwickeln.
*Embedded Systems: Mit [[MicroPython]] kann man Python sogar auf Mikrocontrollern laufen lassen.
*Embedded Systems: Mit [[MicroPython]] kann man Python sogar auf Mikrocontrollern laufen lassen.
Dies wird auch durch das umfangreiche [[Programmbibliothek|Bibliothekssystem]] von Python begünstigt: für sehr viele Anwendungen stehen Bibliotheken bereit, die mit dem Schlüsselwort <syntaxhighlight lang="python" inline>import</syntaxhighlight> in ein Python-Programm geladen werden können.
Dies wird auch durch das umfangreiche [[Programmbibliothek|Bibliothekssystem]] von Python begünstigt: für sehr viele Anwendungen stehen Bibliotheken bereit, die mit dem Schlüsselwort {{Python|import}} in ein Python-Programm geladen werden können.


=== Beispiel: Ein einfacher Webserver ===
=== Beispiel: Ein einfacher Webserver ===

Version vom 3. August 2024, 21:09 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.

💬
Beispiel

Die folgenden Programmabschnitte prüfen beide, ob eine Zahl x gleich 0 ist:

not x
x == 0

Beide tun dasselbe, aber der untere Abschnitt ist beim schnellen Darüberlesen deutlich leichter verständlich.

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