Viele Elemente (Definition von Prozeduren, Kontrollstrukturen ...) erwarten nach Ihrer Definition genau eine Anweisung. Möchten wir jedoch mehrere Anweisungen ausführen, sind wir nicht gezwungen derartige Konstrukte immer wieder zu wiederholen, sondern können mehrere Anweisungen mithilfe eines Blockes im Kontext zu einer Anweisung zusammenfassen.
In anderen Programmiersprachen werden z.B. geschweifte Klammern oder Schlüsselwörter wie begin
und end
verwendet, um einen Block zu definieren. Python geht hier einen vollkommen anderen Weg.
In Python wird ein Block durch die Einrückung der entsprechenden Anweisungen definiert. Alle
Anweisungen, die zum gleichen Block gehören, müssen die gleiche Einrückung haben.
Das nachfolgende Beispiel soll die Definition eines Blockes veranschaulichen.
x = 1 if x == 1: print "1.: Im if Block" print "2.: Im if Block" print "3.: Nicht im if Block"
Prozeduren erlauben es uns Wiederholungen von Quelltext zu vermeiden. Quelltext, die wir an mehreren Stellen immer wieder oder nur leicht (durch andere Parameter) abgewandelt verwenden würden lagern wir in Prozeduren auf, die wir im Anschluss aufrufen können.
Die Definition einer Prozedur, besteht aus einer Signatur und einem Rumpf, welcher nach der Signatur in einem Block definiert wird.
Eingeleitet wird die Signatur einer Prozedur mit dem Schlüsselwort def
.
Im Anschluss folgt der Name der Prozedur. In Klammern folgt eine Parameterliste, welche
keinen, einen oder mehrere Parameter haben kann. Abgeschlossen wird die Signatur mit
einem Doppelpunkt..
Nachfolgend ein Beispiel für die Definition und Aufruf einer Prozedur.
# Beispiel einer Prozedur def myProcedure(value1,value2): print(value1); print(value2); # Prozedurenaufruf myProcedure("Heinrich",43); myProcedure("Willi",4);
Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:
Heinrich 43 Willi 4
Bisher konnten wir mit den Prozeduren lediglich Seiteneffekte herbeiführen (Ausgaben, Veränderung äußerer
Variablen, ...). Oft möchten wir jedoch, ein Ergebnis einer Prozedur auswerten. Hier kommt nun das Schlüsselwort
return
zum Einsatz, mit dem wir eine Prozedur beenden und ein Ergebnis zurückliefern können.
def myTest(value): return 2 * value myResult = myTest(21) print myResult
Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:
42
Wir sind nicht beschränkt, ein einzelnes Ergebnis zurückzuliefern. Wir können meherere Ergebnisse getrennt durch ein Komma zurückliefern.
def myTest(value): return 2 * value, 3 * value, 4 * value a, b, c = myTest(11) print a print b print
Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:
22 33 44