Einführung in Python - Aufbau und Grundlagen

0 | 6 Kommentare | 9547 Aufrufe
Sie können diese Wikiseite nach der Anmeldung auf Webmasterpro bearbeiten. Helfen Sie mit und verbessern Sie "Einführung in Python - Aufbau und Grundlagen" mit Ihrem Wissen!

Anzeige Hier werben

Grundstruktur eines Python-Programms

Das Wort Syntax kommt aus dem Griechischen und bedeutet »Satzbau«. Unter der Syntax einer Programmiersprache ist die vollständige Beschreibung erlaubter und verbotener Konstruktionen zu verstehen. Die Syntax wird durch eine Art Grammatik festgelegt, an die sich der Programmierer zu halten hat. Tut er es nicht, so verursacht er den allseits bekannten Syntax Error.

Um Ihnen ein Gefühl für die Sprache Python zu vermitteln, möchten wir zunächst einen Überblick über ihre Syntax geben. Dazu ist zu sagen, dass Python dem Programmierer sehr genaue Vorgaben macht, wie er seinen Quellcode zu strukturieren hat. Obwohl erfahrene Programmierer darin eine Einschränkung sehen
mögen, kommt diese Eigenschaft gerade Programmierneulingen zugute, denn unstrukturierter und unübersichtlicher Code ist eine der größten Fehlerquellen in der Programmierung. Grundsätzlich besteht ein Python-Programm aus einzelnen Anweisungen, die im einfachsten Fall genau eine Zeile im Quelltext einnehmen. Folgende Anweisung gibt beispielsweise einen Text auf dem Bildschirm aus:

 
Python
1
print "Hallo Welt"

Einige Anweisungen lassen sich in einen Anweisungskopf und einen Anweisungskörper unterteilen, wobei der Körper weitere Anweisungen enthalten kann:

Anweisungskopf:
Anweisung
.
.
Anweisung

Das könnte in einem konkreten Python-Programm etwa so aussehen:

 
Python
1
2
3
if x > 10:
    print "Der Interpreter leistet gute Arbeit"
    print "Zweite Zeile!"

Die Zugehörigkeit des Körpers zum Kopf wird in Python durch einen Doppelpunkt am Ende des Anweisungskopfes und durch eine tiefere Einrückung des Anweisungskörpers festgelegt. Die Einrückung kann sowohl über Tabulatoren als auch über Leerzeichen erfolgen, wobei man gut beraten ist, beides nicht zu vermischen. Wir empfehlen eine Einrückungstiefe von jeweils vier Leerzeichen. Python unterscheidet sich hier von vielen gängigen Programmiersprachen, in denen die Zuordnung von Anweisungskopf und Anweisungskörper durch geschweifte Klammern oder Schlüsselwörter wie »Begin« und »End« erreicht wird.

Achtung!

Ein Programm, in dem sowohl Leerzeichen als auch Tabulatoren verwendet wurden, kann vom Python-Interpreter anstandslos übersetzt werden, da jeder Tabulator intern durch acht Leerzeichen ersetzt wird. Dies kann aber zu schwer auffindbaren Fehlern führen, denn viele Editoren verwenden standardmäßig eine Tabulatorweite von vier Leerzeichen. Dadurch scheinen bestimmte Quellcodeabschnitte gleich weit eingerückt, obwohl sie es de facto nicht sind.

Bitte stellen Sie Ihren Editor so ein, dass jeder Tabulator automatisch durch Leerzeichen ersetzt wird, oder verwenden Sie ausschließlich Leerzeichen zur Einrückung Ihres Codes.

Möglicherweise fragen Sie sich jetzt, wie solche Anweisungen, die über mehrere Zeilen gehen, mit dem interaktiven Modus vereinbar sind, in dem ja immer nur eine Zeile bearbeitet werden kann. Nun, generell werden wir, wenn ein Codebeispiel mehrere Zeilen lang ist, nicht den interaktiven Modus verwenden. Dennoch ist die Frage berechtigt. Die Antwort: Es wird ganz intuitiv zeilenweise eingegeben. Wenn der Interpreter erkennt, dass eine Anweisung noch nicht vollendet ist, ändert er den Eingabeprompt von >>> in .... Geben wir einmal unser obiges Beispiel in den interaktiven Modus ein:

 
Python Consolenlog
1
2
3
4
5
6
>>> x = 123
>>> if x > 10:
...     print "Der Interpreter leistet gute Arbeit"
...     print "Zweite Zeile!"
...
>>>

Beachten Sie, dass Sie, auch wenn eine Zeile mit ... beginnt, die aktuelle Einrückungstiefe berücksichtigen müssen. Das Ende des Anweisungskörpers kann der Interpreter nicht automatisch erkennen, da er beliebig viele Anweisungen enthalten kann. Deswegen muss ein Anweisungskörper im interaktiven Modus durch Drücken der Enter-Taste beendet werden.

Das erste Programm

Als Einstieg in die Programmierung mit Python bieten wir hier ein kleines Beispielprogramm, das Spiel Zahlenraten. Die Spielidee ist folgende: Der Spieler soll eine im Programm festgelegte Zahl erraten. Dazu stehen ihm beliebig viele Versuche zur Verfügung. Nach jedem Versuch informiert ihn das Programm darüber, ob die geratene Zahl zu groß, zu klein oder genau richtig gewesen ist. Sobald der Spieler die Zahl erraten hat, gibt das Programm die Anzahl der Versuche aus und wird beendet. Aus Sicht des Spielers soll das Ganze folgendermaßen aussehen:

Raten Sie: 42
Zu klein
Raten Sie: 10000
Zu gross
Raten Sie: 999
Zu klein
Raten Sie: 1337
Super, Sie haben es in 4 Versuchen geschafft!

Implementierung in Python

 
Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
secret = 1337
guess = 0
i = 0

while guess != secret:
    guess = input("Raten Sie: ")
    if guess < secret:
        print "Zu klein"
    if guess > secret:
        print "Zu gross"
    i = i + 1
print "Super, Sie haben es in ", i, "Versuchen geschafft!"

Jetzt möchten wir die einzelnen Bereiche des Programms noch einmal ausführlich diskutieren.

Initialisierung

 
Python
1
2
3
secret = 1337
guess = 0
i = 0

Hier werden die für das Spiel benötigten Variablen angelegt. Python unterscheidet zwischen verschiedenen Variablentypen, wie Zeichenketten, Ganz- oder Fließkommazahlen. Der Typ einer Variablen wird zur Laufzeit des Programms anhand des ihr zugewiesenen Wertes bestimmt. Es ist also nicht nötig, einen Variablentyp
explizit anzugeben. Eine Variable kann im Laufe des Programms ihren Typ ändern.

In unserem Spiel werden Variablen für die gesuchte Zahl (secret), die Benutzereingabe (guess) und den Versuchszähler (i) angelegt und mit Anfangswerten versehen. Dadurch, dass guess und secret zu Beginn des Programms verschiedene Werte haben, ist sichergestellt, dass die Schleife anläuft.

Schleifenkopf

 
Python
1
while guess != secret:

Eine while-Schleife wird eingeleitet. Eine while-Schleife läuft so lange, wie die im Schleifenkopf genannte Bedingung (guess != secret) erfüllt ist, also in diesem Fall, bis die Variablen guess und secret den gleichen Wert haben. Aus Benutzersicht bedeutet dies: Die Schleife läuft so lange, bis die Benutzereingabe mit der gespeicherten Zahl übereinstimmt. Den zum Schleifenkopf gehörigen Schleifenkörper erkennt man daran, dass die nachfolgenden Zeilen um eine Stufe weiter eingerückt wurden. Sobald die Einrückung
wieder um einen Schritt nach links geht, endet der Schleifenkörper.

Schleifenkörper

 
Python
1
2
3
4
5
6
guess = input("Raten Sie: ")
    if guess < secret:
        print "Zu klein"
    if guess > secret:
        print "Zu gross"
    i = i + 1

In der ersten Zeile des Schleifenkörpers wird eine Zahl vom Spieler eingelesen und in der Variablen guess gespeichert. Dazu wird die Zeile input("Raten Sie: ") benötigt. Der String "Raten Sie: " wird dabei vor der Eingabe ausgegeben und dient dazu, den Benutzer zur Eingabe der Zahl aufzufordern.

Nach dem Einlesen wird einzeln geprüft, ob die eingegebene Zahl guess größer oder kleiner als die gesuchte Zahl secret ist, und mittels print eine entsprechende Meldung ausgegeben. Schlussendlich wird der Versuchszähler i um eins erhöht.

Nach dem Hochzählen des Versuchszählers endet der Schleifenkörper, da die nächste Zeile nicht mehr unter dem Schleifenkopf eingerückt ist.

Bildschirmausgabe

 
Python
1
print "Super, Sie haben es in ", i, "Versuchen geschafft!"

Die letzte Programmzeile gehört nicht mehr zum Schleifenkörper. Das bedeutet, dass sie erst ausgeführt wird, wenn die Schleife vollständig durchlaufen, das Spiel also gewonnen ist. In diesem Fall werden eine Erfolgsmeldung sowie die Anzahl der benötigten Versuche ausgegeben. Das Spiel ist beendet. Erstellen Sie jetzt Ihr erstes Python-Programm, indem Sie den Programmcode in eine Datei namens spiel.py schreiben und zur Ausführung bringen. Ändern Sie den Startwert von guess, und spielen Sie das Spiel.

Buchhinweis

Bild zu Einführung in Python - Aufbau und Grundlagen

Dieser Artikel stammt aus dem Buch "Python – Das umfassende Handbuch" von Peter Kaiser und Johannes Ernesti und wurde uns von Galileo Design zur Verfügung gestellt hat. Das Buch kann über die Webseite des Galileo Verlag bestellt werden.


Wikiseite bearbeiten

Diese Seite kann von jedem registrierten Benutzer bearbeitet werden. Bisher haben 3 Personen an der Seite "Einführung in Python - Aufbau und Grundlagen" mitgewirkt.

Sie haben einen Fehler entdeckt oder möchten etwas ergänzen? Dann können Sie nach der Anmeldung "Einführung in Python - Aufbau und Grundlagen" hier bearbeiten.

Mitarbeiter

Kommentare: Einführung in Python - Aufbau und Grundlagen

Neuen Kommentar schreiben
design?
Beantworten

wieso ist der artikel (obwohl er braun ist) unter design gelistet?

http://www.webmasterpro.de/design/print.html

ah ich seh schon.. weils mit "print§ getaggt ist.. aber da muss doch ne sperre rein oder?

meggs am 13.07.2008 um 15:15
Re: design?
Beantworten

Ich nehm das Print raus.

Fabian Ziegler am 14.07.2008 um 09:50
Interessant
Beantworten

Mit Python habe ich mich noch gar nicht beschäftigt. Wie sieht das mit Vor-/Nachteilen, bzw. Unterschieden zu PHP aus? Auf dem Server muss sicherlich Python installiert sein, ist das weitestgehend Standard?

sten am 01.07.2008 um 13:28
Re: Interessant
Beantworten

ich lerne gerade python. und habe mir jetzt mal die builti-functions angeeignet. der syntax von python kann man kaum mit dem syntax von php vergleichen. in python ist alles viel strukturierter aufgebaut. dann gibt es da noch eine extrem große vielfalt an nützlichen modulen. wie du wahrscheinlich schon oben mitbekommen hast wird man förmlich dazu gezwungen zeilen einrückungen vorzunehmen und die klammern, die die codeblöcke auzusammen halten einfach wegfallen, erleichtert sich somit auch das lesen und schreiben komplizierter anwendungen.

Benutzer gelöscht am 14.07.2008 um 12:55
Re: Interessant
Beantworten

Wie sieht das mit Vor-/Nachteilen, bzw. Unterschieden zu PHP aus?

Also Python hat eindeutig einen viel kompakteren syntax. Viele sachen die in PHP massig zeilen brauchen kannst du in Python schon in einer Zeile formulieren.

Auf dem Server muss sicherlich Python installiert sein, ist das weitestgehend Standard?

Das, würde ich sagen ist der Hauptnachteil von Python: Auf fast keinem Webspace-Paket gescheit vorhanden.

Da gibt es verschiedene Apache-Module, die haben aber alle ihre tücken (kenn mich da nicht so genau aus).

Thomas H am 01.07.2008 um 17:40
Re: Interessant
Beantworten

Der Anwendungsbereich von Phyton ist deutlich größer und nicht nur auf Webapplikationen beschränkt (auch wenn man mit PHP theoretisch auch noch arbeiten kann, was de facto aber kaum jemand macht). Außerdem gibt es tausende libs, die man nutzen kann, wenn man nicht alles selbst machen will ;). Der Server muss auch einen Pythoninterpreter zur Verfügung stellen, dies wird oft bei reinen Webservern nicht angeboten.

Holger V am 01.07.2008 um 16:00