Zu diesem Thema gibt es ein Tutorial!

Python (Programmiersprache): Unterschied zwischen den Versionen

Aus KGS-Wiki
(Python geschichte angekratzt, vielseitigkeit gezeigt, beispiele gezeigt, fazit hinzugefügt.)
 
K (→‎Weblinks: Weiterbildung nun bei Ivo gehostet)
 
(11 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Python''', benannt nach der britischen Komiker Truppe "Monty Python", 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, und das aus gutem Grund.
[[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.  


=== 1. Einfachheit und Lesbarkeit ===
==''The Zen of Python''==
Python legt großen Wert auf Klarheit und Lesbarkeit, was durch die klare und prägnante Syntax gefördert wird. Das bedeutet, dass Python-Code oft intuitiver und verständlicher ist, insbesondere für Einsteiger. Hier ist ein einfaches Beispiel:
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.
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<ref>Dies ist eine Anspielung auf Guido van Rossum, den niederländischen Entwickler von Python</ref>.
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 <q>Schön[er Code] ist besser als hässlich[er Code]</q>, <q>Lesbarkeit zählt</q> oder <q>Einfach[er Code] ist besser als komplex[er Code]</q>.


<code>name = input("Wie heißt du? ")</code>
Die grundlegende Philosophie dahinter ist, dass Programme lesbar und einfach sein sollten, insbesondere einfach zu erklären.


<code>print(f"Hallo, {name}!")</code>
{{Beispiel|
Die folgenden Programmabschnitte prüfen beide, ob eine Zahl {{Python|x}} gleich 0 ist:
<syntaxhighlight lang="python">
not x
</syntaxhighlight>
<syntaxhighlight lang="python">
x == 0
</syntaxhighlight>
Beide tun dasselbe, aber der untere Abschnitt ist beim schnellen Darüberlesen deutlich leichter verständlich.}}


Dieser einfache Code fragt nach dem Namen des Benutzers und begrüßt ihn dann.
== Einfachheit und Lesbarkeit ==
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")
</syntaxhighlight>In anderen Sprachen wie [[C (Programmiersprache)|C]] oder [[Java (Programmiersprache)|Java]] wäre dazu viel mehr Aufwand nötig.


=== 2. Vielseitigkeit ===
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 [[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:
    print("x ist positiv")
else:
    print("x ist nicht positiv")
 
while x > 0:
    x = x - 1
</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]] {{Python|and}}, {{Python|or}} und {{Python|not}}.
 
== Datentypen ==
 
{{/Datentypen}}
 
==Vielseitigkeit==
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.
* Automation: Mit Python lassen sich repetitive Aufgaben automatisieren, beispielsweise Dateien zu verschieben oder Webinhalte zu scrapen.
*Automation: Mit Python lassen sich repetitive Aufgaben automatisieren, beispielsweise Dateien zu verschieben oder Webinhalte zu scrapen.
* 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 {{Python|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:<syntaxhighlight lang="python3" line="">
from http.server import SimpleHTTPRequestHandler, HTTPServer


=== 3. Beispielcode: Ein einfacher Webserver ===
PORT = 8080
Mit Python kann man mit nur wenigen Zeilen Code einen einfachen Webserver erstellen:


<code>from http.server import SimpleHTTPRequestHandler, HTTPServer</code>
with HTTPServer(("localhost", PORT), SimpleHTTPRequestHandler) as server:


<code>PORT = 8080</code>
    print(f"Server läuft auf Port {PORT}")


<code>with HTTPServer(("localhost", PORT), SimpleHTTPRequestHandler) as server:</code>
    server.serve_forever()
</syntaxhighlight>Dieser Code erstellt einen einfachen Webserver, der den Inhalt des aktuellen Verzeichnisses anzeigt und unter der Adresse ht<nowiki/>tp://localhost:8080 geöffnet werden kann.


<code>    print(f"Server läuft auf Port {PORT}")</code>
==Quellen==


<code>    server.serve_forever()</code>
<references />


Dieser Code erstellt einen einfachen Webserver, der den Inhalt des aktuellen Verzeichnisses anzeigt.
== Siehe auch ==
* {{Hinweis Tutorial|Programmieren mit Python}}


=== Fazit ===
==Weblinks==
Python ist eine mächtige, leicht zu lernende Sprache, die sich für eine breite Palette von Anwendungen eignet, von Webentwicklung bis Maschinenlernen. Ihre einfache Syntax, die umfangreiche Standardbibliothek und die riesige Community machen sie zu einer hervorragenden Wahl für Anfänger und Experten gleichermaßen.
*[https://weiterbildung.stichel.uk/chapter6/ "Programmierung in Python" in der Lehry-Weiterbildung Informatik {{Flagge|DE}}]
* {{W3Schools|python|Python-Tutorial}}
*[https://docs.python.org Offizielle Python-Dokumentation {{Flagge|GBFRESBRJPCNKRTR}}]
[[Kategorie:Programmierung]]
[[Kategorie:Sprache]]
{{DEFAULTSORT:Python}}

Aktuelle Version vom 8. Oktober 2024, 20:52 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.

Datentypen

Datentypen in Python
Typ Erklärung Beispiele
int für ganze Zahlen (engl. integer numbers) 0, 42, 3190701205
float für Dezimalzahlen (“Kommazahlen”, engl. floating-point numbers) 0.5, 42.0, 3.141592
str für beliebige Zeichenketten (engl. strings) 'Hello World', '42', 'https://wiki.kah.gs'
bool für Wahrheitswerte (engl. boolean)[P 1] True, False
  1. Logische Wahrheitswerte werden nach George Boole, einem Pionier der mathematischen Logik, auch als "boolesche Werte" bezeichnet (im Englischen "boolean").

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