📋Fonctions et listes

Cours de mathématiques · Seconde

Définir ses propres fonctions avec def et return, comprendre les variables locales, créer et parcourir des listes, et écrire une compréhension simple.

Ce que tu vas savoir faire

  • Définir une fonction avec def et renvoyer un résultat avec return.
  • Distinguer une variable locale d'une variable globale.
  • Créer une liste, accéder à un élément par son indice, connaître sa longueur.
  • Parcourir une liste avec une boucle for et y ajouter des éléments.
  • Écrire une liste en compréhension simple.

Définir une fonction (def et return)

Règle

Une fonction est un petit programme réutilisable. On la définit avec def, on lui donne des paramètres, et elle renvoie un résultat avec return :

def carre(x):
    return x * x

y = carre(6)   # y vaut 36

On appelle la fonction en écrivant son nom suivi des arguments entre parenthèses : carre(6).

Méthode
  1. La ligne def nom(parametres): se termine par :.
  2. Le corps de la fonction est indenté.
  3. return renvoie une valeur ET arrête la fonction.
Exemple
def aire_rectangle(L, l):
    return L * l

print(aire_rectangle(3, 4))   # 12
Astuce

return (renvoyer) n'est pas print (afficher) ! Une fonction qui fait print mais pas return renvoie en réalité None.

Paramètres, arguments et variables locales

Règle

Les paramètres sont les noms entre parenthèses dans le def ; les arguments sont les valeurs qu'on passe lors de l'appel.

Une variable créée dans une fonction est locale : elle n'existe que le temps de l'appel et n'est pas visible à l'extérieur.

Méthode

Pour utiliser un résultat ailleurs, il faut le return puis le ranger dans une variable : r = carre(6). Sans return, le calcul est perdu.

Exemple
def ajoute(a, b):
    total = a + b   # variable locale
    return total

print(ajoute(2, 5))   # 7
# print(total)        # erreur : total n'existe pas ici
Astuce

Le nom des paramètres est libre : def f(x) et def f(n) marchent pareil. Choisis un nom qui parle.

Créer et lire une liste

Règle

Une liste range plusieurs valeurs dans un ordre. On l'écrit entre crochets, séparées par des virgules :

notes = [12, 8, 15, 9]

On accède à un élément par son indice, qui commence à 0 :

print(notes[0])   # 12 (le premier)
print(notes[3])   # 9  (le quatrième)
print(notes[-1])  # 9  (le dernier)

len(notes) donne le nombre d'éléments (ici 4).

⭐ Pour les curieux — pourquoi ça marche ? On peut voir l'indice comme « le nombre de cases qu'on saute depuis le début ». Pour atteindre le premier élément, on ne saute rien : son indice est donc 00 ; pour le deuxième, on saute une case (11), et ainsi de suite. Du coup, dans une liste de 44 éléments, les indices sont 0,1,2,30, 1, 2, 3 : le dernier vaut bien 41=34-1 = 3, c'est-à-dire len(liste)1\text{len(liste)} - 1. C'est aussi pour ça que notes[4] plante : il faudrait sauter 44 cases alors qu'il n'y en a que 44 en tout, on tomberait juste après la fin.

Méthode

Le premier élément a l'indice 0, le dernier l'indice len(liste) - 1. L'indice -1 est un raccourci pour le dernier élément.

Exemple
fruits = ["pomme", "kiwi", "figue"]
print(len(fruits))   # 3
print(fruits[1])     # kiwi
Astuce

Accéder à notes[4] dans une liste de 4 éléments provoque une erreur « index out of range » : le dernier indice valide est 3 !

Parcourir une liste et l'agrandir

Règle

On parcourt une liste avec une boucle for, qui prend chaque élément l'un après l'autre :

notes = [12, 8, 15]
for note in notes:
    print(note)

Pour ajouter un élément à la fin, on utilise .append(...) :

notes.append(20)   # notes vaut maintenant [12, 8, 15, 20]
Méthode

Pour calculer sur une liste, on prépare souvent un accumulateur avant la boucle (par exemple total = 0), puis on le met à jour à chaque tour.

Exemple
notes = [12, 8, 15]
total = 0
for note in notes:
    total = total + note
print(total)   # 35
Astuce

Pour construire une liste vide puis la remplir : resultat = [] puis resultat.append(...) dans la boucle.

Listes en compréhension

Règle

Une liste en compréhension construit une liste en une seule ligne, à partir d'une boucle :

carres = [i * i for i in range(5)]
# [0, 1, 4, 9, 16]

On peut y ajouter une condition if pour filtrer :

pairs = [n for n in range(10) if n % 2 == 0]
# [0, 2, 4, 6, 8]
Méthode

Lis une compréhension de gauche à droite : « la valeur i*i, pour chaque i dans range(5) ». La partie for se lit comme une boucle.

Exemple
doubles = [2 * x for x in [3, 5, 8]]
print(doubles)   # [6, 10, 16]
Astuce

Une compréhension est juste une boucle for raccourcie : tout ce qu'elle fait, tu peux l'écrire avec une boucle classique et .append.

Tu as lu le cours ? Passe à la pratique.

Un coach IA te guide sans jamais donner la réponse, avec des exercices et des quiz sur ce chapitre. Version d'essai gratuite, sans limite de durée.

S'entraîner avec le coach IA — gratuit