Blöcke / Prozeduren

Blöcke
Prozeduren
Rückgaberwerte einer Prozedur

Blöcke

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"
itmapa.de - X2H V 0.20

Prozeduren

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);
itmapa.de - X2H V 0.21

Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:

Heinrich
43
Willi
4
            

Rückgaberwerte einer Prozedur

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