Une fonction peut avoir plusieurs instructions return. Elle peut retourner une valeur dans une instruction if et une autre valeur dans une instruction else. Il est important de garder à l'esprit que la fonction arrête son exécution dès qu'elle retourne une valeur. Dès que la fonction atteint une instruction return, le programme continue son exécution à partir de l'endroit où la fonction a été appelée :
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
Ainsi, la fonction ne retourne qu'une seule fois, et le programme continue son exécution à partir du point où la fonction a été appelée.
Ceci est particulièrement utile si vous pouvez retourner une valeur dans une boucle, et donc, la boucle et la fonction s'arrêteront à ce point et le programme reviendra à l'endroit où la fonction a été appelée. Nous pouvons éviter d'utiliser break dans les boucles de cette manière.
Défi
Nous dirons qu'un nombre est « spécial » s'il est pair et si la somme de ses deux derniers chiffres est égale à 7.
Implémentez une fonction is_special(n) qui retournera True si n est spécial et False sinon. Si le nombre n'est pas « spécial », la fonction doit également afficher Not special dans la sortie avant de retourner.
L'entrée contient un seul entier n (100 ≤ n ≤ ).
Le programme doit afficher Yes si n est spécial et No sinon. Dans le cas où il affiche No, le programme doit également afficher Not special avant le No.