BCPST 1B Informatique 2016-2017 Les fonctions en Python. 1) Les

publicité
BCP ST 1B Informatique
2016-2017
Les fonctions en Python.
1) Les fonctions prédéfinies
Le langage Python fournit un certain nombre de fonctions prédéfinies dites primitives.
Exemples :
print()
input()
range()
abs()
min(), max()
sorted()
len()
...
pour avoir la liste des fonctions prédéfinies il suffit d’exécuter l’instruction :
dir( builtins )
et pour avoir de l’aide sur une de ces fonctions :
help(abs)
Vérifier que vous savez :
utiliser des fonctions primitives.
faire un petit programme avec abs().
trouver de l’aide sur la fonction sorted()
2) Fonctions de bibliothèque
Python propose des fonctions toutes faites. Elles ont été écrites par les concepteurs ou par des utilisateurs
éclairés. Les différentes fonctions sont organisées en modules thématiques.
Exemples de modules :
math qui contient toutes les fonctions habituellement utilisées en analyse ;
random qui calcule des nombres pseudo-aléatoires ;
(utilisé pour faire des simulations de modèles probabilistes)
matplotlib.pyplot qui contient des fonctions pour les représentations graphiques ;
numpy qui contient toutes les fonctions permettant de manipuler les tableaux de nombre ;
imageio qui contient toutes les fonctions permettant de manipuler les images ;
On peut parcourir l’ensemble des fonctions d’un module avec la commande ”dir(module)”
Pour importer un module on écrit tout en haut du programme une des lignes suivantes :
import math
import math as mt
from math import cos,sin
from math import *
Exemples :
import math
import math as mt
a=3*math.pi
b=2*math.pi
print(math.cos(a),math.sin(b))
a=3*mt.pi
b=2*mt.pi
print(mt.cos(a),mt.sin(b))
1
# mt est un "alias".
from math import cos,sin,pi
from math import *
a=3*pi
b=2*pi
print(cos(a),sin(b))
a=3*pi
b=2*pi
print(cos(a),sin(b))
# on importe tout sans alias.
Ces quatre syntaxes sont utiles. On s’adaptera en fonction du contexte.
Un exemple avec la fonction plot du module matplotlib.pyplot :
from math import cos,sin,pi
from matplotlib.pyplot import plot,axis
x=[cos(2*k*pi/5) for k
y=[sin(2*k*pi/5) for k
x1=[cos(t/20) for t in
y1=[sin(t/20) for t in
axis(’equal’)
plot(x,y)
plot(x1,y1)
in range(6)]
in range(6)]
range(130)]
range(130)]
Vérifier que vous savez :
importer un module et lire la liste de ses fonctions.
trouver de l’aide sur la fonction random() du module random
exécuter un des programmes ci-dessus.
3) Définition de fonctions simples.
Les fonctions occupent une place centrale en programmation.
Une fonction est une série d’instruction qui dépend de paramètres (ou arguments), elle retourne un résultat.
La notion de fonction en programmation est à rapprocher du cours de mathématiques sur les applications.
La syntaxe Python est :
def nom de la fonctions(paramètres) :
bloc d instructions
Attention aux deux points et à l’indentation en début de ligne. C’est la fin de l’indentation qui indique la
fin du bloc.
Exemples :
Ê Calcul du périmètre d’un rectangle.
def perimetre(largeur,longueur):
"""float,float->float
hypothese : largeur>0 , longueur>0
retourne le périmètre d’un rectangle defini par sa largeur et sa longueur"""
return 2*(largeur+longueur)
ou plus simplement
def perimetre(largeur,longueur):
return 2*(largeur+longueur)
2
Ë Calcul d’une moyenne.
def moyenne(L):
"""list[float]->float
hypothese : la liste contient des flottants ou des entiers
retourne la moyenne des valeurs de L """
n=len(L)
S=0
for k in range(n):
S=S+L[k]
return S/n
ou plus simplement
def moyenne(L):
n=len(L)
S=0
for k in range(n):
S=S+L[k]
return S/n
A la fin on retourne la valeur attendue par l’instruction return S.
Attention : ne pas confondre return S et print(S). (Erreur courante)
Une fois la définition de cette fonction exécutée, elle est en mémoire et on peut faire des ’appels’ à cette
fonction :
>>> perimetre(5,6)
22
>>> moyenne([9,7,8.5,1.5])
6.5
Vérifier que vous savez :
écrire une des fonctions ci-dessus et faire des appels à cette fonction.
définir une fonction Python réalisant x 7−→ x2 + 1 .
écrire une fonction faisant la moyenne géométrique de deux flottants.
4) Portée des variables :
En python on distingue deux sortes de variables, les locales et les globales.
 Les variables utilisées dans le programme principale sont qualifiées de globales.
À Les variables initialisées dans une fonction sont locales : elles n’existent que le temps de l’exécution de
la fonction.
Á Les arguments de la fonction sont des variables locales.
à Dans une fonction on peut nommer une variable locale avec le nom d’une variable globale, dans ce cas
là, la locale l’emporte sur la globale.
Ä Dans une fonction on peut accéder aux valeurs des variables globales.
Å Dans une fonction on peut modifier la valeur d’une variable globale en insérant la commande global en
début de fonction.
3
Un exemple faisant apparaı̂tre toutes ces règles :
def Fonction(a,b):
global x
y = 2 * t
x = x + b
a = a + 1
return a + y + x
x
y
t
a
b
z
=
=
=
=
=
=
1
2
3
4
5
Fonction(x,y)
print(x,y,t,a,b,z)
Ê Commencer par distinguer les variables locales et les variables globales.
(Faire le lien avec les 6 règles précédentes)
Ë Trouver sans l’ordinateur les valeurs affichées par ce programme.
x
y
t
Ì Vérifier en exécutant le programme.
4
a
b
z
Téléchargement
Study collections