Fonctions Informatique pour tous

publicité
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
Téléchargement