def nom_de_la_fonction(parametre1, parametre2):
instructions
return resultat
def introduit la définition.return renvoie le résultat.resultat = nom_de_la_fonction(valeur1, valeur2)
return peut être stockée dans une variable.return, elle renvoie None.Dans def double(n):, le n entre parenthèses est un paramètre formel : c'est le nom symbolique que la fonction utilise pour désigner la valeur qu'elle recevra.
Quand on appelle la fonction avec double(5), la valeur 5 est un paramètre effectif : c'est la valeur concrète passée à la fonction au moment de l'appel.
return renvoie une valeur : on peut la stocker et la réutiliser.print affiche à l'écran mais ne renvoie rien (None).print(abs(-5)) fonctionne car abs renvoie 5. Si abs ne faisait qu'afficher, on ne pourrait pas utiliser le résultat.
return : la fonction renvoie alors None.return et print.ma_fonction désigne la fonction, ma_fonction() l'exécute.return : il ne sera jamais exécuté.import math
def aire_disque(rayon):
return math.pi * rayon ** 2
print(aire_disque(5)) # 78.539...
def celsius_vers_fahrenheit(c):
return c * 9 / 5 + 32
print(celsius_vers_fahrenheit(100)) # 212.0
print(celsius_vers_fahrenheit(0)) # 32.0
def double_return(n):
return n * 2
def double_print(n):
print(n * 2)
a = double_return(5) # a vaut 10
b = double_print(5) # affiche 10, mais b vaut None
print(a + 1) # 11 (on peut calculer avec a)
# print(b + 1) # ERREUR : None + 1 impossible
Écrire les fonctions suivantes :
cube(n) qui renvoie $n^3$.perimetre_rectangle(longueur, largeur) qui renvoie le périmètre d'un rectangle.def cube(n):
return n ** 3
def perimetre_rectangle(longueur, largeur):
return 2 * (longueur + largeur)
Vérification :
cube(3) renvoie 27 car $3^3 = 27$ ;perimetre_rectangle(5, 3) renvoie 16 car $2 \times (5 + 3) = 16$.Sans exécuter le code, prédire ce qui est affiché par chaque programme :
# Programme A
def mystere(x):
x * 2 + 1
print(mystere(5))
# Programme B
def calcul(a, b):
return a + b
print("Terminé")
resultat = calcul(3, 4)
print(resultat)
# Programme C
def afficher_double(n):
print(n * 2)
x = afficher_double(6)
print(x)
None. La ligne x * 2 + 1 calcule mais ne renvoie rien (return oublié).7. Le return interrompt la fonction : print("Terminé") n'est jamais exécuté.12 (le print dans la fonction), puis None (car pas de return).convertir_duree(secondes) qui renvoie un tuple (heures, minutes, secondes).convertir_duree(3725) renvoie (1, 2, 5).def convertir_duree(secondes):
h = secondes // 3600
m = (secondes % 3600) // 60
s = secondes % 60
return (h, m, s)
Vérification : convertir_duree(3725) donne $3725 // 3600 = 1$, reste $125$, $125 // 60 = 2$, reste $5$, soit (1, 2, 5).
On vérifie : $1 \times 3600 + 2 \times 60 + 5 = 3725$. ✓