Читать книгу Routineaufgaben mit Python automatisieren - Al Sweigart - Страница 87

Rückgabewerte und die Anweisung return

Оглавление

Wenn Sie die Funktion len() aufrufen und ihr ein Argument wie 'Hello' übergeben, wird der Funktionsaufruf zur Länge des übergebenen Strings ausgewertet, hier also zu dem Integerwert 5. Der Wert, zu dem ein Funktionsaufruf ausgewertet wird, ist der sogenannte Rückgabewert der Funktion.

Wenn Sie mit def eine eigene Funktion erstellen, können Sie mithilfe der Anweisung return festlegen, was der Rückgabewert sein soll. Eine return-Anweisung weist folgende Bestandteile auf:

 Das Schlüsselwort return

 Den Wert oder Ausdruck, den die Funktion zurückgeben soll

Wenn Sie in der return-Anweisung einen Ausdruck angeben, ist der Rückgabewert der Wert, zu dem dieser Ausdruck ausgewertet wird. Betrachten Sie als Beispiel das folgende Programm, das je nachdem, welche Zahl als Argument übergeben wird, einen anderen String zurückgibt. Geben Sie den folgenden Code in den Dateieditor ein und speichern Sie ihn als magic8Ball.py:

import random

def getAnswer(answerNumber):

if answerNumber == 1:

return 'It is certain'

elif answerNumber == 2:

return 'It is decidedly so'

elif answerNumber == 3:

return 'Yes'

elif answerNumber == 4:

return 'Reply hazy try again'

elif answerNumber == 5:

return 'Ask again later'

elif answerNumber == 6:

return 'Concentrate and ask again'

elif answerNumber == 7:

return 'My reply is no'

elif answerNumber == 8:

return 'Outlook not so good'

elif answerNumber == 9:

return 'Very doubtful'

r = random.randint(1, 9)

fortune = getAnswer(r)

print(fortune)

Die Ausführung dieses Programms können Sie sich auf https://autbor.com/magic-8ball.py/ ansehen. Zu Beginn importiert Python das Modul random (). Anschließend wird die Funktion getAnswer() definiert (). Da dies nur die Definition der Funktion ist, aber kein Aufruf, wird der darin enthaltene Code übersprungen. Die Ausführung fährt mit dem Aufruf der Funktion random.randint() mit den beiden Argumenten 1 und 9 fort (). Das Ergebnis ist ein Zufallsinteger zwischen 1 und 9 (einschließlich 1 und 9) und wird in der Variablen r gespeichert.

Als Nächstes wird die Funktion getAnswer() mit r als Argument aufgerufen (). Die Programmausführung springt zum Anfang dieser Funktion (), wo der Wert r im Parameter answerNumber gespeichert wird. Abhängig von dem Wert dieses Parameters gibt die Funktion nun einen der vielen möglichen Stringwerte zurück. Die Programmausführung kehrt anschließend zu der Zeile im Programm zurück, in der getAnswer() aufgerufen wurde (). Der zurückgegebene String wird der Variablen fortune zugewiesen, die an den Aufruf der Funktion print() übergeben () und damit auf dem Bildschirm ausgegeben wird.

Da Sie Rückgabewerte als Argumente an andere Funktionsaufrufe übergeben können, lassen sich die drei folgenden Zeilen auch abkürzen:

r = random.randint(1, 9)

fortune = getAnswer(r)

print(fortune)

Die folgende einzelne Zeile macht genau das Gleiche:

print(getAnswer(random.randint(1, 9)))

Wie Sie wissen, bestehen Ausdrücke aus Werten und Operatoren. Da ein Funktionsaufruf zu seinem Rückgabewert ausgewertet wird, kann er daher auch in einem Ausdruck verwendet werden.

Routineaufgaben mit Python automatisieren

Подняться наверх