Aller au contenu

Sciences numériques et technologie · Seconde

Les fonctions en Python : cours de SNT en seconde

Publié le 9 novembre 2026 · Mis à jour le 9 novembre 2026 · Signaler une erreur

L'essentiel

  • Une fonction est un bloc de code nommé, défini avec def, qui reçoit des paramètres et peut renvoyer un résultat avec return.
  • Définir une fonction ne l'exécute pas : il faut ensuite l'appeler avec des arguments.
  • return donne une valeur à l'appelant et termine la fonction ; print affiche seulement à l'écran.
  • Les variables créées dans une fonction sont locales : elles n'existent pas en dehors.
  • En Python, a % b donne le reste de la division euclidienne de a par b 6 ; une fonction peut aussi renvoyer True ou False.

Pourquoi utiliser des fonctions ?

Quand tu programmes, tu te retrouves vite à écrire plusieurs fois le même enchaînement d'instructions : calculer une moyenne, tester si un nombre est pair, convertir une température. Recopier ce code partout est long, et si tu découvres une erreur, il faut la corriger à chaque endroit. La fonction règle ce problème : tu écris le calcul une seule fois, tu lui donnes un nom, puis tu l'utilises autant de fois que nécessaire.

Dans ce cours, tu vas apprendre à définir une fonction, à l'appeler, à lui transmettre des données et à récupérer un résultat. Tu as déjà vu les variables, les types, les conditions et les boucles : tu vas t'en servir à l'intérieur des fonctions.

Le programme de mathématiques de seconde précise que le langage choisi est Python 6. Il va plus loin : l'idée de fonction y remplace celle d'entrée au clavier ou d'affichage 6. Un article de Sésamath en tire la conséquence et présente presque tous les algorithmes comme des fonctions 6. Autrement dit, savoir écrire une fonction te servira autant en SNT qu'en mathématiques.

Il existe un second avantage, moins visible au début : lire un programme devient plus facile. Un nom bien choisi comme est_pair(n) ou moyenne(notes) raconte ce que fait le code sans qu'il faille relire chaque ligne. Un long programme se découpe ainsi en petites briques que l'on peut tester séparément.

Définir une fonction avec def

Voici la plus simple des fonctions, qui ne prend rien et ne renvoie rien :

def dire_bonjour():
    print("Bonjour !")

Si tu exécutes seulement ces deux lignes, rien ne s'affiche. Tu as expliqué à Python ce que signifie dire_bonjour, mais tu ne lui as pas demandé de le faire. Pour exécuter la fonction, il faut l'appeler :

dire_bonjour()

Cette fois, le message « Bonjour ! » apparaît.

L'indentation n'est pas décorative en Python : c'est elle qui indique où la fonction commence et où elle s'arrête. En général, on décale de quatre espaces. Toutes les lignes de même décalage, placées juste après le :, font partie de la fonction. Dès qu'une ligne revient au bord gauche, tu sors de la fonction.

def saluer():
    print("Début")
    print("Fin")
print("Cette ligne est hors de la fonction")

Paramètres, arguments et return

Une fonction peut recevoir plusieurs paramètres, séparés par des virgules. L'ordre compte au moment de l'appel :

def aire_rectangle(longueur, largeur):
    return longueur * largeur

L'appel aire_rectangle(5, 3) renvoie 15. Si tu échanges les arguments, le résultat ici ne change pas, mais avec une soustraction il changerait : def difference(a, b): return a - b donne difference(7, 2) = 5 et difference(2, 7) = -5.

Une fonction peut aussi renvoyer plusieurs valeurs à la fois, rassemblées en un couple. C'est utile quand le calcul fournit deux résultats liés. Un article de Sésamath sur les algorithmes du programme de maths donne l'exemple d'une fonction dont le résultat dépend d'un entier nn et qui renvoie un couple de réels, appelés flottants en Python 6.

def somme_et_produit(a, b):
    return a + b, a * b

s, p = somme_et_produit(3, 4)

Après l'exécution, s vaut 7 et p vaut 12.

Variables locales et variables globales

Une variable définie en dehors de toute fonction est dite globale. Une fonction peut lire sa valeur, mais le plus propre est de tout lui transmettre par des paramètres. Ainsi, la fonction ne dépend que de ses arguments : mêmes arguments, même résultat. Cette habitude rend les programmes plus sûrs et plus faciles à tester.

Conditions, boucles et fonctions

Le contenu d'une fonction peut utiliser tout ce que tu connais : conditions if, boucles for et while. Une fonction devient alors un véritable algorithme réutilisable.

Parmi les exemples d'algorithmes du programme de maths traduits en Python par Sésamath, on trouve une fonction qui teste si un entier est divisible par 7. Pour ce nombre, aucun critère simple n'est connu : on effectue la division euclidienne et on regarde si le reste est nul 6. En Python, le reste de la division euclidienne de a par b se note a % b 6.

Fonctions qui renvoient un booléen ou travaillent sur des listes

Une fonction qui répond par True ou False s'appelle souvent un test ou un prédicat. Un article de Sésamath sur le programme de maths utilise cette idée pour une relation entre deux variables : pour un couple (x,y)(x, y), la fonction renvoie True si la relation est vérifiée, False sinon 6. On l'applique par exemple pour savoir si un point appartient ou non à une droite 6.

Pour traiter beaucoup de données, comme des notes ou des mesures, on les range dans une liste, notée entre crochets en Python 6. Le même article propose de définir des fonctions de statistiques, comme la moyenne ou l'écart type, qui reçoivent une liste de nombres et renvoient un nombre 6.

def moyenne(liste):
    total = 0
    for valeur in liste:
        total = total + valeur
    return total / len(liste)

Pour moyenne([12, 8, 10]), le total vaut 30 et la liste contient 3 éléments : la fonction renvoie 10.0. L'opérateur / donne toujours un flottant (un nombre écrit avec un point, comme 10.0), même quand le résultat tombe juste.

Tester, déboguer et bien documenter ses fonctions

Pense aussi à documenter : une courte phrase entre triples guillemets, placée juste sous la ligne def, explique ce que fait la fonction.

def aire_cercle(rayon):
    """Renvoie l'aire d'un disque de rayon donné."""
    return 3.14159 * rayon ** 2

Cette phrase aide la personne qui relira ton code, et ce sera peut-être toi dans un mois.

Exercices corrigés

Exercice 1 Évaluer une fonction écrite en Python

★☆☆Environ 8 min

On considère la fonction suivante :

def g(x):
    return 4 * x - 5
  1. Que renvoie l'appel g(6) ?
  2. On écrit a = g(2) puis b = g(a). Quelle est la valeur de b ?

Donne la valeur de b comme réponse finale.

Indice 1

Remplace x par la valeur donnée, puis calcule.

Indice 2

Pour b, l'argument est la valeur de a, pas le nombre 2.

Voir la correction pas à pas
  1. Pour g(6), on remplace x par 6 : 4×6−5=194 \times 6 - 5 = 19.

  2. Pour a = g(2), on calcule 4×2−5=34 \times 2 - 5 = 3, donc a vaut 3.

  3. Pour b = g(a), l'argument est maintenant 3 : 4×3−5=74 \times 3 - 5 = 7.

  4. La valeur de b est donc 7.

On peut utiliser le résultat d'une fonction comme argument d'un nouvel appel. Ici, b vaut 7.

Exercice 2 Reste de division et fonction de test

★★☆Environ 12 min

On définit :

def reste_7(n):
    return n % 7

def est_multiple_de_7(n):
    return reste_7(n) == 0
  1. Que renvoie reste_7(47) ?
  2. Que renvoie est_multiple_de_7(63) ?
  3. Écris une fonction est_multiple_de_5(n) sur le même modèle.

Donne comme réponse numérique le résultat de la question 1.

Indice 1

n % 7 est le reste de la division euclidienne de n par 7.

Indice 2

47 = 7 × 6 + 5 : cherche le plus grand multiple de 7 inférieur ou égal à 47.

Voir la correction pas à pas
  1. Pour la question 1, on cherche la division euclidienne de 47 par 7 : 47=7×6+547 = 7 \times 6 + 5. Le reste est 5, donc reste_7(47) renvoie 5.

  2. Pour la question 2, 63=7×9+063 = 7 \times 9 + 0. Le reste est 0, donc reste_7(63) == 0 est vrai et la fonction renvoie True.

  3. Pour la question 3, on remplace 7 par 5 :

    def est_multiple_de_5(n):
        return n % 5 == 0
    
  4. Vérification : est_multiple_de_5(35) renvoie True et est_multiple_de_5(36) renvoie False, car 36 % 5 vaut 1.

Le reste de 47 par 7 est 5. Un nombre est multiple de bb exactement lorsque le reste de sa division par bb est nul.

Exercice 3 Moyenne d'une liste

★★★Environ 15 min

Une élève range ses notes dans la liste [14, 9, 17, 12]. Elle utilise la fonction suivante :

def moyenne(liste):
    total = 0
    for valeur in liste:
        total = total + valeur
    return total / len(liste)
  1. Fais évoluer à la main la variable total pendant la boucle.
  2. Quelle est la valeur renvoyée par moyenne([14, 9, 17, 12]) ?
  3. Que se passerait-il si le return était décalé à l'intérieur de la boucle ?

Donne la moyenne comme réponse numérique.

Indice 1

La variable total part de 0 et reçoit chaque note l'une après l'autre.

Indice 2

len(liste) donne le nombre d'éléments de la liste.

Voir la correction pas à pas
  1. Au départ total vaut 0.

  2. Après 14, total vaut 14 ; après 9, il vaut 23 ; après 17, il vaut 40 ; après 12, il vaut 52.

  3. La liste contient 4 éléments, donc len(liste) vaut 4.

  4. La fonction renvoie 52/4=13.052 / 4 = 13.0.

  5. Si le return était dans la boucle, la fonction s'arrêterait au premier tour et renverrait 14/4=3.514 / 4 = 3.5, ce qui est faux.

La moyenne vaut 13.0. Un return mal placé suffit à fausser tout le calcul.

Quiz

7 questions · correction immédiate · ton score reste sur ton appareil.

  1. Quel mot-clé sert à définir une fonction en Python ?

  2. On définit def f(x): return 2 * x + 1. Que vaut f(5) ?

  3. Quelle est la différence entre return et print dans une fonction ?

  4. Une variable créée à l'intérieur d'une fonction est accessible partout dans le programme.

  5. Que renvoie l'expression 29 % 7 en Python ?

  6. Quel est le problème de ce code ?

    def carre(n):
        n * n
    
    y = carre(4)
    

  7. Que fait la ligne dire_bonjour (sans parenthèses) après la définition de la fonction ?

Les questions qu'on se pose

Quelle différence entre un paramètre et un argument ?

Le paramètre est le nom écrit dans la définition (def f(x):). L'argument est la valeur donnée à l'appel (f(5)). Au moment de l'appel, le paramètre prend la valeur de l'argument. Dans la vie courante, beaucoup de gens emploient les deux mots l'un pour l'autre ; à l'école, retiens bien la distinction.

Pourquoi ma fonction affiche un résultat mais je ne peux pas l'utiliser ensuite ?

Tu as sans doute utilisé print à la place de return. print montre la valeur à l'écran, mais l'appelant reçoit None. Remplace le print final par return, puis affiche le résultat à l'extérieur si tu veux le voir : print(f(4)).

À quoi servent les fonctions en mathématiques et en SNT ?

Elles permettent de traduire un algorithme ou une formule en programme réutilisable. Le programme de mathématiques de seconde choisit Python et décrit les algorithmes comme des fonctions 6. Tu peux donc tester une formule sur de nombreuses valeurs sans refaire le calcul à la main.

Comment savoir si ma fonction est correcte ?

Teste-la sur des cas dont tu connais déjà la réponse, y compris des cas limites : zéro, un nombre négatif, une liste vide. Tu peux écrire des assert pour que Python fasse la comparaison à ta place. Si un test échoue, suis les variables avec des print temporaires pour trouver la ligne fautive.

Une fonction peut-elle appeler une autre fonction ?

Oui, et c'est courant. Dans l'exercice sur les multiples de 7, est_multiple_de_7 s'appuie sur reste_7. Découper un problème en petites fonctions rend chaque morceau plus simple à écrire et à tester.

Sources

Programme visé : Programme d'enseignement de sciences numériques et technologie - Classe de seconde générale et technologique · Ministère de l'Éducation nationale et de la Jeunesse - Bulletin Officiel

  1. Programme d'enseignement de sciences numériques et technologie - Classe de seconde générale et technologique, Ministère de l'Éducation nationale et de la Jeunesse - Bulletin Officiel. Consulté le 9 novembre 2026.
  2. Ressources pour l'enseignement des SNT en classe de seconde, Éduscol STI. Consulté le 9 novembre 2026.
  3. Les fonctions, du Python au VBA en passant par Excel, Éduscol STI. Consulté le 9 novembre 2026.
  4. Programmes et ressources en sciences numériques et technologie - voie GT, Éduscol. Consulté le 9 novembre 2026.
  5. Manuel Seconde 2023 - Programmation en Python (pages 206-207), Sesamath. Consulté le 9 novembre 2026.
  6. Les exemples d'algorithmes du nouveau lycée général, en Python, Sesamath. Consulté le 9 novembre 2026.

Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.

Signaler une erreur sur cette page

Je suis en…

Primaire

  • CP Bientôt
  • CE1 Bientôt
  • CE2
  • CM1
  • CM2 Bientôt

Collège

Lycée

Supérieur

  • BTS Bientôt
  • BUT Bientôt
  • Licence Bientôt
  • Prépas Bientôt

Sur cette page