Eine Funktion kann mehrere return-Anweisungen haben. Sie kann in einer if-Bedingung einen Wert zurückgeben und in einer else-Bedingung einen anderen. Es ist wichtig zu beachten, dass die Funktion ihre Ausführung sofort beendet, sobald sie einen Wert zurückgibt. Sobald die Funktion eine return-Anweisung erreicht, setzt das Programm seine Ausführung an der Stelle fort, an der die Funktion aufgerufen wurde:
def process_only_even(n):
if n % 2 == 1:
return 'This was an odd number!'
print('Very interesting number ...', n)
n += 18
print('Adding 18 will result in:', n)
return n
print(process_only_even(5))
# This was an odd number!
print(process_only_even(6))
# Very interesting number ... 6
# Adding 18 will result in: 24
# 24
Die Funktion gibt also nur einmal zurück, und das Programm setzt seine Ausführung an der Stelle fort, an der die Funktion aufgerufen wurde.
Dies ist besonders nützlich, wenn man in einer Schleife einen Wert zurückgeben kann; sowohl die Schleife als auch die Funktion werden an dieser Stelle beendet, und das Programm kehrt zu dem Punkt zurück, an dem die Funktion aufgerufen wurde. So können wir in solchen Schleifen auf die Verwendung von break verzichten.
Herausforderung
Wir nennen eine Zahl "speziell", wenn sie gerade ist und die Summe ihrer letzten beiden Ziffern 7 ergibt.
Implementiere eine Funktion is_special(n), die True zurückgibt, wenn n speziell ist, und False sonst. Wenn die Zahl nicht "speziell" ist, sollte die Funktion vor der Rückgabe auch Not special ausgeben.
Die Eingabe besteht aus einer einzelnen ganzen Zahl n (100 ≤ n ≤ ).
Das Programm sollte Yes ausgeben, wenn n speziell ist, und No sonst. Falls No ausgegeben wird, sollte das Programm vor dem No auch Not special ausgeben.