Aller au contenu

Mathématiques · Seconde

Les fonctions en Python : cours de Seconde

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

L'essentiel

  • Une fonction Python se définit avec def, un nom, des paramètres entre parenthèses, deux-points, puis un bloc indenté 1.
  • return renvoie un résultat à l'endroit de l'appel et arrête la fonction ; print se contente d'afficher et ne renvoie rien d'utilisable.
  • Les variables créées dans une fonction sont locales : elles disparaissent à la fin de l'appel.
  • Dans le corps d'une fonction, tu peux utiliser des conditions (if) et des boucles (for, while) pour traiter plusieurs cas ou répéter un calcul.
  • Pour écrire une fonction : nommer, choisir les paramètres, écrire le corps, renvoyer avec return, tester sur des valeurs connues.

Pourquoi écrire des fonctions en Python ?

En mathématiques, tu connais déjà l'idée : une fonction ff associe à un nombre xx un nombre f(x)f(x), toujours obtenu par la même règle. Quand tu écris f(x)=3x+2f(x)=3x+2, tu ne refais pas le raisonnement à chaque valeur : tu appliques la règle.

En programmation, c'est exactement le même besoin. Quand un calcul revient souvent, on ne recopie pas dix fois les mêmes lignes : on les range dans un bloc qui porte un nom, et on appelle ce bloc quand on en a besoin. Ce bloc s'appelle une fonction.

Au lycée général et technologique, le langage de programmation retenu est Python 2. La notion de fonction informatique ne figure pas au programme du collège 2 : ce cours part donc de zéro. Tu as seulement besoin de ce que tu as vu avant : les variables et l'affectation, les instructions conditionnelles et les boucles.

Une précision utile dès le départ : une fonction Python n'est pas obligée de manipuler des nombres. Elle peut travailler sur autre chose que des variables numériques 1, et il arrive même qu'elle ne renvoie rien du tout 1. Dans ce cours, la plupart des exemples seront numériques, parce que c'est le lien le plus direct avec les fonctions de mathématiques, mais garde cette idée en tête : une fonction informatique est plus large qu'une formule.

Côté lycée, on attend surtout que tu comprennes ce que fait un programme ; la recherche de la solution la plus rapide passe après la compréhension 2. Ne cherche donc pas à écrire du code « malin » : écris du code clair.

Définir une fonction avec def

Voici la plus simple des fonctions de mathématiques, f(x)=3x+2f(x)=3x+2, traduite en Python.

def f(x):
    return 3 * x + 2

Décortiquons cette écriture ligne par ligne.

  • def annonce que tu définis une fonction.
  • f est le nom de la fonction. Choisis-le clair, sans espace ni accent.
  • (x) contient le paramètre : c'est la variable d'entrée, celle qui recevra la valeur au moment de l'appel.
  • Les deux-points : terminent la ligne d'en-tête.
  • La ligne suivante est décalée vers la droite : c'est l'indentation. Tout ce qui est décalé fait partie du corps de la fonction.
  • return indique la valeur que la fonction renvoie.

Quand tu écris ces deux lignes et que tu les exécutes, il ne se passe rien d'apparent : tu as seulement enseigné à Python ce que signifie f. Le calcul n'a lieu que lorsque tu appelles la fonction.

print(f(4))

Python remplace x par 4, calcule 3 * 4 + 2, obtient 14, puis print l'affiche. L'écriture f(4) est donc l'équivalent de « f(4)f(4) » en maths, et elle vaut 14.

Écrire une fonction en cinq gestesCinq étapes successives : comprendre, nommer, choisir les paramètres, écrire le corps avec return, tester.1ComprendreRepérer les entrées et le résultat attendu2NommerChoisir un nom clair, sans espace ni accent3ParamètresLister toutes les données utiles au calcul4Corps et returnÉcrire le calcul indenté et renvoyer le résultat5TesterVérifier sur une valeur dont la réponse est connue
  1. ComprendreRepérer les entrées et le résultat attendu
  2. NommerChoisir un nom clair, sans espace ni accent
  3. ParamètresLister toutes les données utiles au calcul
  4. Corps et returnÉcrire le calcul indenté et renvoyer le résultat
  5. TesterVérifier sur une valeur dont la réponse est connue
Écrire une fonction en cinq gestes · Les cinq gestes pour écrire une fonction.

Paramètres, appels et résultat renvoyé

Une fonction peut avoir un paramètre, plusieurs, ou aucun. Le nombre de paramètres dépend de ce dont la fonction a besoin pour calculer.

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

def bonjour():
    print('Bonjour !')

La fonction aire_rectangle a deux paramètres : il faut lui donner deux valeurs, dans cet ordre. L'appel aire_rectangle(5, 3) renvoie 15. La fonction bonjour n'a aucun paramètre ; on l'appelle avec des parenthèses vides : bonjour().

Le résultat d'un appel peut être stocké dans une variable, réutilisé dans un autre calcul, ou donné à une autre fonction.

y = f(4)
z = f(y)
print(y, z)

Ici, y reçoit 14. Puis f(y) calcule 3 * 14 + 2, soit 44, et z reçoit 44. L'affichage donne 14 44. C'est l'équivalent de f(f(4))f(f(4)) en maths : une fonction peut recevoir en entrée le résultat d'une autre.

return ou print : une différence qui change tout

C'est la confusion la plus répandue chez les débutants. Regarde ces deux fonctions.

def carre_a(x):
    return x ** 2

def carre_b(x):
    print(x ** 2)

Si tu exécutes carre_a(5) dans la console, tu vois 25. Si tu exécutes carre_b(5), tu vois aussi 25. Pourtant ce n'est pas la même chose, et la différence apparaît dès que tu veux réutiliser le résultat.

a = carre_a(5) + 1
b = carre_b(5) + 1

La première ligne donne a = 26. La seconde provoque une erreur : carre_b a affiché 25 à l'écran, mais n'a rien renvoyé au programme. Python essaie alors d'additionner « rien » et 1, ce qui n'a pas de sens.

return et print côte à côte
Questionreturnprint
Affiche à l'écran ?Non, pas tout seulOui
Renvoie une valeur au programme ?OuiNon (la fonction renvoie None)
Valeur réutilisable dans un calcul ?OuiNon
Termine la fonction ?OuiNon
return et print côte à côte · Comparaison de return et print.

Un point de détail : avec Python 3, print est lui-même une fonction, et ses arguments se placent entre parenthèses 4. C'est la version de Python que l'on retrouve sur les calculatrices destinées aux lycéens 4. Écris donc toujours print(x) et jamais print x.

Variables locales : ce qui reste dans la fonction

Quand tu crées une variable à l'intérieur d'une fonction, elle n'existe que pendant l'appel. Une fois la fonction terminée, elle disparaît. On dit que cette variable est locale.

def prix_remise(prix):
    reduction = prix * 0.2
    return prix - reduction

print(prix_remise(50))
print(reduction)

La première ligne d'affichage donne 40.0 (c'est-à-dire 40, écrit comme un nombre décimal). La seconde produit une erreur : reduction n'existe que dans prix_remise. Le paramètre prix est lui aussi local.

Cette règle est une protection : tu peux utiliser le même nom de variable dans deux fonctions différentes sans qu'elles se gênent. Ce que tu veux faire sortir de la fonction doit passer par return.

Conditions et boucles dans une fonction

Le corps d'une fonction peut contenir tout ce que tu connais déjà : affectations, instructions conditionnelles et boucles. Il suffit de bien indenter chaque niveau.

Une situation concrète : un tarif qui varie selon l'âge.

def tarif(age):
    if age < 12:
        return 5
    elif age < 26:
        return 8
    else:
        return 12

Pour tarif(15), la première condition est fausse (15 n'est pas inférieur à 12), la deuxième est vraie : la fonction renvoie 8. Les conditions sont testées dans l'ordre, et dès qu'une est vraie, la fonction s'arrête grâce au return. Cela explique pourquoi on n'a pas besoin d'écrire « age >= 12 » dans le elif : si on arrive là, c'est que age < 12 est déjà faux.

Dans l'esprit des activités proposées pour le programme, une fonction de ce type sert à comparer deux offres commerciales et à voir laquelle est la plus avantageuse selon la situation 1.

Les fonctions de maths en Python

Tu rencontreras surtout les fonctions en Python pour étudier des fonctions de mathématiques : calculer des images, dresser des tableaux de valeurs, chercher des solutions, tracer une courbe.

La programmation sert aussi à automatiser le tracé d'une courbe : on calcule une série d'images, puis on relie les points obtenus. Cette automatisation fait partie des premières approches de l'algorithmique en analyse 3. Ce que tu viens d'écrire, une fonction qui calcule des images et une boucle qui la parcourt, est justement la base d'un tel tracé.

Tu peux aussi utiliser une fonction pour tester une conjecture : si tu penses que x2−4x+1x^2-4x+1 est toujours supérieur ou égal à −3-3, tu peux calculer l'image d'un grand nombre de valeurs. Mais attention : une série de tests n'est pas une démonstration. Elle t'aide à émettre une hypothèse, que les mathématiques doivent ensuite prouver.

Méthode pour écrire une fonction et erreurs à éviter

Exercices corrigés

Exercice 1 Traduire une fonction et calculer une image

★☆☆Environ 8 min

On considère la fonction hh définie par h(x)=2(x+1)2−5h(x)=2(x+1)^2-5.

  1. Écris en Python une fonction h qui prend x en paramètre et renvoie h(x)h(x).
  2. Quelle valeur renvoie l'appel h(3) ?
Indice 1

Les parenthèses doivent être respectées : (x+1)2(x+1)^2 s'écrit (x + 1) ** 2.

Indice 2

N'oublie pas le symbole * pour la multiplication par 2.

Voir la correction pas à pas
  1. On écrit l'en-tête : def h(x): avec les deux-points.

  2. On passe à la ligne et on indente, puis on écrit return 2 * (x + 1) ** 2 - 5.

  3. On remplace x par 3 : x+1=4x+1=4.

  4. On calcule le carré : 42=164^2=16.

  5. On multiplie par 2 : 2×16=322\times 16=32.

  6. On retranche 5 : 32−5=2732-5=27. L'appel h(3) renvoie 27.

La fonction s'écrit def h(x): return 2 * (x + 1) ** 2 - 5, et h(3) renvoie 27, comme h(3)h(3) en mathématiques.

Exercice 2 Prix toutes taxes comprises

★★☆Environ 10 min

Un magasin utilise la fonction suivante.

def prix_ttc(ht, taux):
    return ht * (1 + taux / 100)
  1. Que représentent ht et taux ?
  2. Quelle valeur renvoie prix_ttc(80, 20) ?
  3. Cette fonction utilise return. Explique pourquoi c'est préférable à print si on veut ensuite calculer le prix de dix articles.
Indice 1

Un taux de 20 % correspond à un coefficient multiplicateur de 1+201001+\frac{20}{100}.

Indice 2

Pense à ce que tu peux faire d'une valeur renvoyée dans un autre calcul.

Voir la correction pas à pas
  1. ht désigne le prix hors taxe, et taux le pourcentage de taxe.

  2. On remplace : ht vaut 80 et taux vaut 20.

  3. On calcule taux / 100 : on obtient 0,2.

  4. On calcule 1 + 0.2 : on obtient 1,2.

  5. On multiplie : 80×1,2=9680\times 1{,}2=96. L'appel renvoie 96.

  6. Avec return, le résultat peut être stocké ou additionné à d'autres prix ; avec print, il s'affiche mais le programme ne le récupère pas.

prix_ttc(80, 20) renvoie 96 (en euros si le prix hors taxe est en euros). L'usage de return permet de réutiliser le résultat dans d'autres calculs.

Exercice 3 Un tarif selon l'âge

★★★Environ 15 min

Un musée applique ces tarifs : 5 € en dessous de 12 ans, 8 € à partir de 12 ans et en dessous de 26 ans, 12 € à partir de 26 ans.

  1. Écris une fonction tarif(age) qui renvoie le prix d'une entrée.
  2. Un groupe est composé de personnes âgées de 8, 15, 30 et 25 ans. Quel est le prix total pour le groupe ?
  3. Écris une fonction total(liste_ages) qui, à l'aide d'une boucle for, renvoie le prix total d'un groupe dont les âges sont donnés dans une liste.
Indice 1

Teste les conditions dans l'ordre : d'abord age < 12, puis age < 26.

Indice 2

Pour la question 3, crée une variable s valant 0 avant la boucle, ajoute tarif(a) à chaque tour, et renvoie s après la boucle.

Voir la correction pas à pas
  1. On écrit def tarif(age): puis un if age < 12: qui renvoie 5, un elif age < 26: qui renvoie 8, un else: qui renvoie 12.

  2. Pour 8 ans : 8 est inférieur à 12, le tarif est 5 €.

  3. Pour 15 ans : pas inférieur à 12, mais inférieur à 26, le tarif est 8 €.

  4. Pour 30 ans : aucune des deux conditions n'est vraie, le tarif est 12 €.

  5. Pour 25 ans : inférieur à 26, le tarif est 8 €.

  6. Total : 5+8+12+8=335+8+12+8=33 €.

  7. Pour la question 3, on écrit def total(liste_ages): s = 0, puis for a in liste_ages: s = s + tarif(a), puis return s, ce dernier return étant placé hors de la boucle.

Le groupe paie 33 €. La fonction total s'appuie sur tarif : une fonction peut en appeler une autre, ce qui permet de découper un problème en petites étapes.

Quiz

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

  1. Quel mot-clé permet de définir une fonction en Python ?

  2. On définit def f(x): return x ** 2 + 1. Quelle valeur renvoie f(2) ?

  3. Une fonction qui se termine par print(x ** 2), sans aucun return, permet d'utiliser le carré dans un calcul ultérieur, comme a = f(5) + 1.

  4. On exécute ce code :

    def g(x):
        return x + 1
        print('fin')
    
    g(3)
    

    Que se passe-t-il à propos du message fin ?

  5. Quelles affirmations sur les variables locales sont vraies ?

    Plusieurs réponses possibles.

  6. On définit :

    def somme(n):
        s = 0
        for k in range(1, n + 1):
            s = s + k
        return s
    

    Quelle valeur renvoie somme(4) ?

  7. Parmi ces écritures, laquelle affiche correctement la valeur de x en Python 3 ?

  8. On écrit def g(x): print(x + 1) puis y = g(3). Que vaut y ?

Les questions qu'on se pose

Quelle est la différence entre une fonction en maths et une fonction en Python ?

Elles partagent l'idée centrale : à une entrée, on associe un résultat. Mais une fonction Python est plus large. Elle n'est pas limitée aux nombres 1, elle peut afficher quelque chose sans rien renvoyer 1, et elle peut contenir des conditions et des boucles. Une fonction de maths, elle, est une correspondance : elle n'a pas d'« effets » comme l'affichage.

Pourquoi mon programme n'affiche rien alors que j'ai écrit ma fonction ?

Dans la plupart des cas, c'est qu'il manque l'appel : définir la fonction ne déclenche aucun calcul. Écris par exemple print(f(4)). Si tu as bien un appel mais que rien ne s'affiche, vérifie que tu n'as pas écrit seulement return sans print à l'extérieur : en mode script, un return ne montre rien tout seul.

Comment savoir si je dois utiliser return ou print ?

Pose-toi cette question : « Aurai-je besoin de cette valeur plus loin dans le programme ? ». Si oui, utilise return. Si le seul but est de montrer un message à l'utilisateur, utilise print. Pour une fonction de calcul (une image, un prix, une somme), c'est presque toujours return ; on met le print à l'extérieur, au moment de l'appel.

Faut-il optimiser le code pour qu'il soit rapide ?

Non, pas à ce niveau. Au lycée, la compréhension est privilégiée par rapport à l'optimisation du code 2. Ce qu'on attend de toi : un programme clair, correct, que tu sais expliquer et tester sur des exemples. Un code plus long mais lisible vaut mieux qu'un code astucieux que tu ne maîtrises pas.

Que faire quand Python affiche une erreur ?

Lis le message en entier, en commençant par la dernière ligne : elle nomme le type d'erreur ; le numéro de la ligne concernée apparaît juste au-dessus. Les causes classiques sont un deux-points oublié, une indentation incorrecte, un 3x à la place de 3 * x, ou une variable locale utilisée hors de sa fonction. Corrige une erreur à la fois, puis relance.

Sources

  1. Ressource Éduscol - Algorithmique et programmation (document d'accompagnement), Éduscol - Ministère de l'Éducation nationale. Consulté le 9 novembre 2026.
  2. Ressource Éduscol - Fonctions et programmation, Éduscol - Ministère de l'Éducation nationale. Consulté le 9 novembre 2026.
  3. Document ressource fonctions - IREM, IREM - Université de Lille. Consulté le 9 novembre 2026.
  4. Python (langage), Wikipédia. 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