Fiche de cours

Définir et utiliser une fonction

Lycée   >   Premiere, Terminale   >   NSI   >   Définir et utiliser une fonction

  • Fiche de cours
  • Quiz et exercices
  • Vidéos et podcasts
Objectifs
  • Comprendre la notion de fonction
  • Savoir définir et appeler une fonction.
Points clés
  • Une fonction associe une séquence d’actions à un nom. Elle peut avoir ou ne pas avoir des paramètres.
  • Les variables ont des portées différentes, c’est-à-dire qu’une variable est ou n’est pas accessible suivant la manière dont on la définit.
  • La variable est appelée un argument de la fonction.
  • Pour changer la valeur d’une variable dans une fonction, on pourra procéder par un passage d’argument soit par valeur, soit par référence.
Pour bien comprendre
  • Structures conditionnelles
  • Notions d’affectations
1. Le principe d’une fonction
Une fonction associe une séquence d’actions à un nom.

En informatique, on préfère utiliser le terme « appliquer une fonction » plutôt que « utiliser la fonction ». On parle donc d’appel de fonctions.

Pour appliquer une fonction, il faut utiliser le mot clé def suivi du nom de la fonction, suivi de () et du symbole :. Vient ensuite un bloc d’instructions appelé corps de la fonction, qui est indenté (décalé).

Une fonction peut avoir des paramètres ou ne pas en avoir.

2. La fonction sans paramètre
a. Appliquer une fonction sans paramètre
Lorsqu’il n’y a rien dans les parenthèses, on dit que la fonction est sans paramètre.
Exemple de définition d’une fonction sans paramètre
def affiche():
      print("test affichage")

Pour appliquer une fonction sans paramètre, il suffit de taper def dans la console (aussi appelée shell), suivi du nom de la fonction, suivi de () et d’appuyer sur entrée.

Exemple d’appel de la fonction affiche()

b. La portée des variables

Une fonction peut utiliser dans son corps des variables pour réaliser des actions.

Les variables ont des portées différentes, c’est-à-dire que suivant la manière dont on définit la variable, celle-ci est ou n’est pas accessible.
Remarque
On parle de scoping en anglais pour parler de la portée d’une variable.

La variable peut être à portée locale ou à portée globale. On dit qu’il s’agit d’une variable locale ou globale.

  • Une variable locale ne peut être utilisée que dans la fonction ou dans le bloc où elle est définie.
    Exemple
    Si une fonction utilise dans son corps des variables pour effectuer des calculs intermédiaires, la variable est alors qualifiée de locale. Sa valeur n’est valable qu’à l’intérieur du corps de la fonction.
  • À l’opposé d’une variable locale, une variable globale peut être utilisée dans tout le programme. Les valeurs définies en dehors d’une fonction sont qualifiées de globales.
    Exemple d’exécution en Python
    L’appui sur « Next » indique les actions effectuées par Python.

    La valeur de b vaut 100 à l’intérieur de la fonction (b est une variable locale), mais en dehors de la fonction, la valeur de b vaut 45 (b est une variable globale).
c. Changer la valeur d’une variable dans une fonction
Passage d’arguments par valeur

Si on veut que la fonction change la valeur d’une variable qui se trouve dans son corps, il faut utiliser le mot clé global. Cette variable est alors globale, les modifications de cette variable à l’intérieur du corps de la fonction sont donc aussi valables en dehors du corps de celle-ci. On parle de passage d’arguments par valeur.

Exemple d’exécution en Python
L’appui sur « Next » indique les actions effectuées par Python ainsi que les valeurs successives prises par les variables et b.

 Le fait d’avoir rajouté global b dans le corps de la fonction permet de rendre accessible la variable b, sa valeur est ainsi changée et vaut donc 1.
Passage d’arguments par référence

La fonction peut également changer la valeur d’une variable par des listes, car les éléments d’une liste sont référencés par Python par leur adresse mémoire. On parle de passage d’arguments par référence, c’est-à-dire qu’on effectue ce changement en utilisant les adresses mémoire.

Exemple d’exécution en Python
L’appui sur « Next » indique les actions effectuées par Python.

b
 est défini comme une liste d’une valeur (100), elle est donc référencée par une adresse mémoire.
Lorsque la fonction s’applique, elle affecte à l’adresse mémoire b[0] la valeur 1, donc elle change la valeur de b : la valeur 100 est écrasée par la valeur 1.
3. La fonction avec paramètre
La fonction avec paramètre se rapproche de la notion de fonction mathématique. On utilise exactement la même syntaxe que pour une fonction sans paramètre, avec le paramètre à l’intérieur de la parenthèse.

Le paramètre est qualifié de formel car on ne connait pas encore sa valeur.

Ce paramètre ne sera connu qu’à l’appel de la fonction, le paramètre sera alors qualifié d’effectif.

Exemple de définition d’une fonction avec le paramètre « nombre »
def affiche(nombre):
      print("test affichage")
Exemple d’exécution d’une fonction à paramètre en Python
L’appui sur « Next » indique les actions effectuées par Python.

Le paramètre formel « nombre » ne prend une valeur effective qu’à partir de la ligne 7.
Voici ci-dessous le détail des affectations pour l’appel de fonction1(3).
i 0 1 2 3
A-t-on i < 3 ? Oui Oui Oui Non
Affichage 0 1 2  
Valeur de i 1 2 3  
Remarques
  • On peut utiliser plusieurs arguments. Par exemple, la fonction somme utilise deux arguments.
    def somme(x,y):
          return x+y
  • Il existe une manière plus rapide de définir une fonction, on appelle cela une « fonction lambda ». Par exemple, « g = lambda x: x*2 » est équivalent à « def g(x): x=x*2 ».
4. Le retour du résultat – différence entre fonction et procédure

Si on veut être rigoureux, il faut faire la distinction entre une fonction et une procédure.

Une fonction qui ne renvoie pas de valeur est appelée une procédure, tandis qu’une fonction qui renvoie un résultat et qui met à disposition ce résultat est appelée une fonction.
Pour retourner une valeur, c’est-à-dire avoir une valeur ou un résultat que l’on puisse réutiliser au cours d’un programme (et donc avoir une « vraie » fonction au lieu d’une procédure), on utilise la commande return suivie du nom de la variable ou d’une instruction.
Exemple d’exécution en Python
L’appui sur « Next » indique les actions effectuées par Python.

fct(3)
va générer une « impression écran » (avec la commande print en ligne 2), c’est donc juste un objet qui est affiché mais qui n’a pas de type et qui ne peut pas être réutilisé.

En transformant fct en une « vraie » fonction (avec la commande return en ligne 2), on obtient le résultat attendu.

L’appui sur « Next » indique les actions effectuées par Python.

Évalue ce cours !

 

Des quiz et exercices pour mieux assimiler sa leçon

La plateforme de soutien scolaire en ligne myMaxicours propose des quiz et exercices en accompagnement de chaque fiche de cours. Les exercices permettent de vérifier si la leçon est bien comprise ou s’il reste encore des notions à revoir.

S’abonner

 

Des exercices variés pour ne pas s’ennuyer

Les exercices se déclinent sous toutes leurs formes sur myMaxicours ! Selon la matière et la classe étudiées, retrouvez des dictées, des mots à relier ou encore des phrases à compléter, mais aussi des textes à trous et bien d’autres formats !

Dans les classes de primaire, l’accent est mis sur des exercices illustrés très ludiques pour motiver les plus jeunes.

S’abonner

 

Des quiz pour une évaluation en direct

Les quiz et exercices permettent d’avoir un retour immédiat sur la bonne compréhension du cours. Une fois toutes les réponses communiquées, le résultat s’affiche à l’écran et permet à l’élève de se situer immédiatement.

myMaxicours offre des solutions efficaces de révision grâce aux fiches de cours et aux exercices associés. L’élève se rassure pour le prochain examen en testant ses connaissances au préalable.

S’abonner

Des vidéos et des podcasts pour apprendre différemment

Certains élèves ont une mémoire visuelle quand d’autres ont plutôt une mémoire auditive. myMaxicours s’adapte à tous les enfants et adolescents pour leur proposer un apprentissage serein et efficace.

Découvrez de nombreuses vidéos et podcasts en complément des fiches de cours et des exercices pour une année scolaire au top !

S’abonner

 

Des podcasts pour les révisions

La plateforme de soutien scolaire en ligne myMaxicours propose des podcasts de révision pour toutes les classes à examen : troisième, première et terminale.

Les ados peuvent écouter les différents cours afin de mieux les mémoriser en préparation de leurs examens. Des fiches de cours de différentes matières sont disponibles en podcasts ainsi qu’une préparation au grand oral avec de nombreux conseils pratiques.

S’abonner

 

Des vidéos de cours pour comprendre en image

Des vidéos de cours illustrent les notions principales à retenir et complètent les fiches de cours. De quoi réviser sa prochaine évaluation ou son prochain examen en toute confiance !

S’abonner

Découvrez le soutien scolaire en ligne avec myMaxicours

Plongez dans l'univers de myMaxicours et découvrez une approche innovante du soutien scolaire en ligne, conçue pour captiver et éduquer les élèves de CP à la terminale. Notre plateforme se distingue par une riche sélection de contenus interactifs et ludiques, élaborés pour stimuler la concentration et la motivation à travers des parcours d'apprentissage adaptés à chaque tranche d'âge. Chez myMaxicours, nous croyons en une éducation où chaque élève trouve sa place, progresse à son rythme et développe sa confiance en soi dans un environnement bienveillant.

Profitez d'un accès direct à nos Profs en ligne pour une assistance personnalisée, ou explorez nos exercices et corrigés pour renforcer vos connaissances. Notre assistance scolaire en ligne est conçue pour vous accompagner à chaque étape de votre parcours éducatif, tandis que nos vidéos et fiches de cours offrent des explications claires et concises sur une multitude de sujets. Avec myMaxicours, avancez sereinement sur le chemin de la réussite scolaire, armé des meilleurs outils et du soutien de professionnels dédiés à votre épanouissement académique.

Fiches de cours les plus recherchées

NSI

Diversité et unité des langages de programmation

NSI

Donner des préconditions

NSI

Donner des postconditions

NSI

Tester un programme

NSI

Prototyper une fonction

NSI

S'informer sur une bibliothèque Python

NSI

Utiliser la bibliothèque Matplotlib de Python pour créer un graphique

NSI

Algorithmes de recherche : parcourir un tableau

NSI

Algorithmes de recherche : rechercher un extremum

NSI

Algorithmes de recherche : obtenir une moyenne, une médiane