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

Exemple
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 3

Trois fonctions courtes, chacune vérifiable, qui se composent pour produire le résultat final.

Valeur par défaut

Exemple
1def bonjour(nom, salutation="Bonjour"):2    return f"{salutation} {nom}"3 4print(bonjour("Codey"))              # Bonjour Codey5print(bonjour("Codey", "Salut"))     # Salut Codey

La 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 * 2

Pourquoi : 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 liste

Pourquoi : 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 avec help().

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.