Bases & algorithmique · 5 mondes · 15 étapes
Bases de la programmation
La grammaire du code, en Python, directement dans le navigateur.
Progression
0 %
0/15 étapes terminées
Intermédiaire · 9 min de lecture
Les fonctions
Emballer une idée pour la réutiliser
1Définition
Une fonction associe un nom à un bloc de code paramétrable. On la définit avec def, on l'appelle avec des arguments, et return renvoie un résultat au code appelant.
2Principes fondamentaux
01
Une fonction, une responsabilité
Si tu as besoin de « et » pour décrire ce qu'elle fait, elle en fait probablement trop.
02
return, ce n'est pas print
print parle à l'humain. return parle au programme : la valeur peut être stockée et réutilisée.
03
Les variables locales restent locales
Ce qui est créé dans la fonction disparaît à la sortie. Pour le garder, il faut le renvoyer.
04
Des paramètres, pas des variables globales
Une fonction qui reçoit tout ce dont elle a besoin est testable et réutilisable.
3Exemples pratiques
Découper pour clarifier
1def xp_total(missions):2 return missions * 203 4def niveau(missions):5 return xp_total(missions) // 100 + 16 7def badge(nom, missions):8 return f"{nom} - niveau {niveau(missions)}"9 10print(badge("Codey", 12)) # Codey - niveau 3Trois fonctions courtes, chacune vérifiable, qui se composent pour produire le résultat final.
Valeur par défaut
1def bonjour(nom, salutation="Bonjour"):2 return f"{salutation} {nom}"3 4print(bonjour("Codey")) # Bonjour Codey5print(bonjour("Codey", "Salut")) # Salut CodeyLa valeur par défaut évite de répéter le cas le plus courant à chaque appel.
4Erreurs courantes
Oublier le return
À éviter
def double(x): x * 2 print(double(3)) # NoneÀ faire
def double(x): return x * 2Pourquoi : Sans return, la fonction renvoie None.
Appeler sans parenthèses
À éviter
print(double)À faire
print(double(3))Pourquoi : Sans parenthèses, tu manipules la fonction elle-même, pas son résultat.
Une valeur par défaut mutable
À éviter
def ajouter(item, liste=[]): liste.append(item) return listeÀ faire
def ajouter(item, liste=None): if liste is None: liste = [] liste.append(item) return listePourquoi : La liste par défaut est partagée entre tous les appels : elle grossit à chaque fois. Piège classique.
5Subtilités à connaître
- ◆Une fonction peut renvoyer plusieurs valeurs d'un coup :
return total, moyenne(c'est un tuple). - ◆Les arguments nommés rendent les appels lisibles :
energie(depart=100, utilisee=30). - ◆Une docstring (
"""…""") en première ligne documente la fonction et s'affiche avechelp().
6Vérifie ta compréhension
Question 1/3
Score 0
Que renvoie une fonction sans return ?
Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.