Aller au contenu principal

⚙️ Création de fonctions

Une fonction regroupe un bloc de code réutilisable sous un nom.
Elle reçoit des données en entrée via ses paramètres, effectue un traitement, et peut renvoyer un résultat avec return.


🔹 Anatomie d'une fonction

def double(x):
return 2 * x
ÉlémentRôle
defMot-clé qui indique la définition d'une fonction
doubleNom de la fonction
(x)Paramètre(s) entre parenthèses
:Indique le début du corps de la fonction
IndentationDélimite le corps de la fonction (obligatoire)
returnValeur renvoyée à l'appelant

🔹 Paramètres

Une fonction peut avoir 0, 1 ou plusieurs paramètres.

def nombre_pi():
return 3.14159

def carre(x):
return x * x

def puissance(base, exposant):
return base ** exposant
  • Les paramètres multiples sont séparés par des virgules.
  • L'ordre des valeurs lors de l'appel doit correspondre à l'ordre des paramètres.
puissance(2, 3) # base=2, exposant=3 → retourne 8
puissance(3, 2) # base=3, exposant=2 → retourne 9

🔹 Valeur par défaut

Un paramètre peut avoir une valeur par défaut, utilisée si aucune valeur n'est fournie lors de l'appel.

def puissance(base, exposant=2):
return base ** exposant

puissance(5) # exposant prend la valeur par défaut → 25
puissance(5, 3) # exposant prend la valeur fournie → 125

💡 Les paramètres sans valeur par défaut doivent toujours être placés avant ceux qui en ont une.


🔹 Valeur de retour

SituationComportement
return valeurRenvoie la valeur et arrête la fonction
Plusieurs returnSeul le premier atteint est exécuté
Retour multiplereturn a, b → décomposable en x, y = f()
Aucun returnLa fonction retourne automatiquement None
def diviser(a, b):
quotient = a // b
reste = a % b
return quotient, reste

q, r = diviser(10, 3) # q = 3, r = 1

Fonction sans return

Une fonction sans return retourne automatiquement None.

def saluer(nom):
print(f"Bonjour, {nom}!")

saluer("Mario") # Affiche : Bonjour, Mario!
resultat = saluer("Link") # Affiche : Bonjour, Link!
print(resultat) # Affiche : None

⚠️ N'affichez jamais le résultat d'une fonction qui ne retourne rien — cela affichera toujours None.

# ✅ Bonne utilisation
saluer("Kirby")

# ❌ Mauvaise utilisation
print(saluer("Kirby")) # Affiche la salutation, puis None

🔹 Portée des variables

PortéeDéfinitionAccessible
GlobaleEn dehors de toute fonctionPartout dans le programme
LocaleÀ l'intérieur d'une fonctionUniquement dans cette fonction
x = 10 # variable globale

def ma_fonction():
x = 5 # variable locale — différente de la globale
print(x) # affiche 5

ma_fonction()
print(x) # affiche 10

💡 Les paramètres d'une fonction ont aussi une portée locale.


🔹 Commentaires et docstring

def energie_cinetique(masse, vitesse):
"""
Calcule l'énergie cinétique d'un objet.

Paramètres :
masse (float) : masse en kg
vitesse (float) : vitesse en m/s

Retourne :
float : énergie cinétique en Joules
"""
return 0.5 * masse * vitesse ** 2
SyntaxeUtilisation
# commentaireCommentaire sur une ligne ou en fin de ligne
"""..."""Docstring : documenter une fonction (obligatoire bonne pratique)