Fonctions Informatique pour tous Informatique pour tous Fonctions Fonction On a déjà vu des fonctions en Python : print, pow... On va voir comment et pourquoi créer ses propres fonctions. Informatique pour tous Fonctions Factorielle Question Comment calculer n! en Python ? Informatique pour tous Fonctions Factorielle Question Comment calculer n! en Python ? Informatique pour tous Fonctions Factorielle Et si on a besoin d’utiliser dix fois une factorielle, on fait quoi ? Informatique pour tous Fonctions Fonction Définition Une fonction, comme en mathématiques, possède un nom, demande des éventuelles entrées et renvoie une sortie. Informatique pour tous Fonctions Fonction Syntaxe générale d’une fonction : x1, x2, ... sont les arguments (ou paramètres) de la fonction. Informatique pour tous Fonctions Fonction factorielle On peut définir une fonction factorielle : Informatique pour tous Fonctions Fonction factorielle Puis on l’utilise de la façon suivante : Informatique pour tous Fonctions Fonction Une fonction peut éventuellement ne rien retourner (ne pas avoir de return). Informatique pour tous Fonctions Fonction Informatique pour tous Fonctions Fonction Informatique pour tous Fonctions Fonction factorielle Il est important d’expliquer ce que fait une fonction : Question Ne voyez-vous pas un problème ? Informatique pour tous Fonctions Fonction factorielle On peut préciser des restrictions sur les entrées dans la documentation d’une fonction. Informatique pour tous Fonctions Fonction factorielle On peut ensuite utiliser help : Informatique pour tous Fonctions Fonction factorielle On peut ensuite utiliser help : Informatique pour tous Fonctions Coefficient binomial Question Comment ferait t-on pour calculer un coefficient binomial En utilisant : n k Informatique pour tous ! = n! k!(n − k)! Fonctions n k ? Coefficient binomial Première solution : Informatique pour tous Fonctions Coefficient binomial Meilleure solution : Informatique pour tous Fonctions Variable locale B Les variables initialisées à l’intérieur d’une fonction (dites locales) sont seulement visibles dans la fonction ! Informatique pour tous Fonctions Variable locale Informatique pour tous Fonctions Variable globale Au contraire, une variable accessible partout dans le code est dite globale. Il faut utiliser autant que possible des variables locales : elles permettent de rendre le code plus lisible. Informatique pour tous Fonctions Copie des arguments B Une variable de type int, bool, float ou string passée en argument d’une fonction est copiée : elle est donc différente de la variable initiale ! Informatique pour tous Fonctions Copie des arguments print(y) affiche 1 L’instruction x = 2 n’a pas modifié y Informatique pour tous Fonctions Fonction comme argument Il est possible d’avoir une fonction comme argument d’une autre fonction. Informatique pour tous Fonctions Fonction comme argument Informatique pour tous Fonctions Fonction comme argument Informatique pour tous Fonctions Fonction anonyme On a créé une fonction carre pour l’utiliser une seule fois dans somme. Informatique pour tous Fonctions Fonction anonyme On a créé une fonction carre pour l’utiliser une seule fois dans somme. Dans ce cas, on peut aussi utiliser une fonction anonyme (sans nom) : désigne la fonction qui à x associe x 2 . Informatique pour tous Fonctions Fonction anonyme Informatique pour tous Fonctions Fonction anonyme Informatique pour tous Fonctions Retourner une fonction De la même façon que l’on peut passer une fonction en argument, on peut aussi retourner une fonction comme résultat. Informatique pour tous Fonctions Retourner une fonction Question Que fait la fonction suivante ? Informatique pour tous Fonctions Retourner une fonction Informatique pour tous Fonctions Retourner une fonction On peut aussi faire la même chose avec lambda : Informatique pour tous Fonctions Module Quand on a beaucoup de fonctions autour du même « thème », il est judicieux de les regrouper dans un même fichier, qu’on appelle alors module. Informatique pour tous Fonctions Module Quand on a beaucoup de fonctions autour du même « thème », il est judicieux de les regrouper dans un même fichier, qu’on appelle alors module. Pour utiliser un module on peut écrire : qui importe toutes les fonctions dans le fichier module.py. Informatique pour tous Fonctions Module Par exemple, le module math de Python regroupe les fonctions mathématiques. Informatique pour tous Fonctions Module cos et pi doivent être importées depuis le module math ! Informatique pour tous Fonctions Module Informatique pour tous Fonctions Module L’utilisation de modules dans un projet de programmation (par exemple un TIPE) permet d’améliorer la lisibilité du code. Informatique pour tous Fonctions TIPE morpion Par exemple, si pour mon TIPE sur le morpion je veux faire un programme, il peut être judicieux de créer plusieurs modules. Informatique pour tous Fonctions TIPE morpion Exemple de modules pour TIPE morpion : graphique (dans le fichier graphique.py) : fonctions afficher_grille, afficher_pion... IA (dans le fichier IA.py) : fonctions de l’IA. joueur (dans le fichier joueur.py) : fonctions pour vérifier si le coup demandé est correct, pour choisir le nom du joueur... Informatique pour tous Fonctions