Fonctions et structure du code

information-icon

Les premières épreuves du bac de français édition 2024 sont pour bientôt ! Consulte les dates du bac de français, notre programme de révision accompagné de toutes nos fiches de révisions pour te préparer au mieux à ton examen 💪

Définition et appel de fonctions

  • En sciences numériques, une fonction est assez proche d'une fonction au sens mathématique du terme, elle reçoit généralement des données en entrée et retournent généralement en sortie le résultat du traitement opéré par la fonction.
  • Il est possible de créer et d'utiliser des fonctions dépourvues de paramètres d'entrée.

Types de fonctions

  • On distingue deux types de fonctions :
  • les fonctions natives ;
  • les fonctions créées par l'utilisateur : permet d’enrichir le langage.
  • Une fonction native est prête à l'emploi, tandis qu'une fonction définie par l'utilisateur doit d'abord faire l'objet d'une déclaration pour la définir.
  • L’emploi de fonctions permet de décomposer des tâches complexes en tâches élémentaires plus simples et permettent de pouvoir être appelés plusieurs fois.

Modalités de définition d'une fonction

  • Dans son expression la plus simple, une fonction consiste en une ligne de définition suivie par le bloc de code correspondant à cette fonction.

def bonjour():

return 'Bonjour'

  • L’appel d'une fonction s’effectue en indiquant son nom suivi des parenthèses ouvrantes et fermantes.

print(bonjour())

# affiche la chaine de caractères "Bonjour"

Paramétrage des fonctions

Principe du paramétrage des fonctions

  • Les paramètres de la fonction sont indiqués entre parenthèses à la suite de son nom dans la ligne de définition de la fonction.
  • La variable message, locale à la fonction, contient le résultat de la concaténation.
  • Si une fonction comporte un paramètre dans sa définition, un argument doit être renseigné dans l’instruction d’appel de la fonction.
  • Une fonction peut être définie avec plusieurs paramètres et donc recevoir plusieurs arguments.

Arguments multiples

  • Nous pouvons avoir plusieurs arguments, pour cela il suffit d’ajouter un paramètre dans la définition de la fonction, puis d’ajouter dans le corps de celle-ci une série de tests conditionnels.
  • Si un des paramètres n’est pas reconnue, c'est par exemple l'espéranto qui est choisi par notre fonction, grâce à la condition « else » qui traite tous les cas autres que ceux prévus par les « if » et « elif ».

Valeurs par défaut

  • Nous pouvons préciser une valeur prise par le programme lorsqu’elle n’est pas explicitement fournie.
  • Quand une fonction est définie avec des valeurs de paramètres par défaut, il devient possible de les omettre lors de l’appel mais aussi de les inclure nommément dans l'appel de la fonction.
  • Le nommage des paramètres en arguments permet de s'affranchir de l'ordre dans lequel ils sont définis par la fonction.

Paramètres avec et sans valeurs par défaut

  • Les paramètres sans valeur par défaut doivent impérativement précéder ceux disposant de valeurs par défaut dans la définition de la fonction. De même pour les arguments positionnels qui nécessitent obligatoirement des valeurs.
  • Des erreurs d'exécution de nos fonctions surviennent dans certaines conditions :
  • si nous ne fournissons pas le nombre de paramètre requis ou ;
  • si nous fournissons des données inattendues par leur contenu ou par leur nature.

Spécifications fonctionnelles

  • Les préconditions correspondent aux prérequis d'emploi d'une fonction et les postconditions concernent ce qui est attendu des résultats retournés par une fonction.
  • Nous pouvons intégrer des vérifications de nos spécifications dans le corps de notre fonction de différentes manières, l’emploi d'assertions peut nous aider dans ce contexte.
  • Le mot clé « assert » du langage Python nous permet de tester si une condition est vraie et de générer une erreur dans le cas contraire.
  • Il est souhaitable de documenter ses fonctions en incluant, dans la définition de la fonction, une chaine de caractères (« docstring » en anglais) qui présente synthétiquement la fonction, ses paramètres et les résultats qu'elle produit en retour.
  • Ainsi placée, notre docstring permet à Python d'afficher avec help le message d'aide de notre fonction exactement comme pour les fonctions natives du langage.
  • Les spécifications et la documentation des fonctions contribuent à produire un code informatique de qualité.

Bibliothèques

  • Les bibliothèques sont des conteneurs permettant d'étendre les fonctionnalités initiales du langage, en apportant des outils supplémentaires en fonction des besoins.
  • Le langage Python inclut en standard un grand nombre de modules spécialisés qui composent sa bibliothèque standard. L'importation d'un tel module s'effectue avec l'instruction « import ».
  • Si la bibliothèque souhaitée ne fait pas partie de la bibliothèque standard de Python, elle devra être installée séparément.
  • La documentation officielle disponible en ligne présente le contenu des différents modules et le fonctionnement des éléments de ces modules.
  • Une aide hors ligne est également disponible directement sur votre machine avec la fonction native help().
  • Pour une vue synthétique sur un module il est possible de faire appel à la fonction native dir() qui retourne la liste de toutes les fonctions du module.