Les fonctions : découper un programme en blocs réutilisables
13 min · Intermédiaire · 7 août 2026
Donner un nom à un bloc de code
Les chapitres précédents ont déjà utilisé def dans chaque exercice, sans s’y attarder. Une fonction regroupe un bloc de code sous un nom, réutilisable avec des entrées différentes à chaque appel :
def saluer(prenom):
return f"Bonjour {prenom} !"
print(saluer("Alice")) # Bonjour Alice !
print(saluer("Bob")) # Bonjour Bob ! return renvoie, print affiche
Danger
Une fonction qui se contente d’un print, sans return, renvoie toujours None à qui l’appelle : la valeur affichée à l’écran n’est jamais récupérable par le reste du programme.
def calculer_faux(a, b):
print(a + b) # affiche le resultat, mais ne le renvoie pas
def calculer_correct(a, b):
return a + b # renvoie le resultat, utilisable ensuite
resultat = calculer_faux(2, 3) # affiche 5, mais resultat vaut None
resultat = calculer_correct(2, 3) # n'affiche rien, mais resultat vaut 5 Des paramètres optionnels, avec une valeur par défaut
def puissance(base, exposant=2):
return base ** exposant
print(puissance(5)) # 25 : exposant vaut 2 par defaut
print(puissance(5, 3)) # 125 : la valeur par defaut est remplacee Un paramètre avec valeur par défaut devient optionnel à l’appel, sans jamais empêcher de le préciser explicitement quand c’est nécessaire.
À toi de jouer
Écris une fonction calculer_prix(prix, remise=0) qui renvoie le prix après une remise exprimée en pourcentage (remise=20 signifie 20 % de réduction). Sans remise précisée, le prix reste inchangé.
def calculer_prix(prix, remise=0):
# Renvoie le prix apres une remise en pourcentage
pass