Une fonction(function) est une suite d'instructions que l'on peut appeler avec un nom. La syntaxe pour la déclaration d'une fonction est la suivante:
def nomDeLaFonction(param1,param2,param3,...): ... bloc d'instructions ...
def carre(): i=1 while i<11: print(i*i,end=" ") i=i+1Ce script definit une fonction qui affiche les carrés des entiers de 1 à 10. Pour excécuter la fonction il faut l'appeler par son nom:
carre()soit dans l shell soit dans l'éditeur de textes.
def carre(max): i=1 while i< max+1: print(i*i,end=" ") i=i+1 carre(15)Exécuter ce script.
anneeCourante
et anneeNaissance
.
def cube(a): return a*a*aExécuter ce script puis dans le shell, saisir:
>>>cube(5)
>>>print(cube(5))Remarques:
def mask(): p=20 return(p,q) p=15 q=38 print(mask()) print((p,q))Exécuter ce script et observer ce qui est affiché.
Les variables définies à l’extérieur d’une fonction sont des variables globales. Leur contenu est « visible» de l’intérieur d’une fonction, mais la fonction ne peut pas le modifier. Les variables utilisées à l'intérieur d'une fonction sont des variables locales. Une variable globale peut être modifiée dans une fonction en utilisant l'instruction global. Exemples:
def augmenter(): global a a=a+1 return(a) a=15 print(augmenter())
Nous avons déjà rencontré des fonctions intégrées au language python, comme la fonction len() qui permet de connaître la longueur d'une chaîne de caractères? Il existe d'autes fonctions qui sont regroupées dans des fichiers qu'on appelle modules
from math import* a=121 b=sqrt(a) print(b)Exécuter ce script. Quelle est cette fonction sqrt()?
random : fonctions permettant de travailler avec des valeurs aléatoires |
math : toutes les fonctions utiles pour les opérations mathématiques (cosinus,sinus,exp,etc.) |
sys : fonctions systèmes |
os : fonctions permettant d'interagir avec le système d'exploitation |
time : fonctions permettant de travailler avec le temps |
calendar : fonctions de calendrier |
profile : fonctions permettant d'analyser l'éxecution des fonctions |
urllib2 : fonctions permettant de récupérer des informations sur internet |
re : fonctions permettant de travailler sur des expressions régulières |
aireDisque(R)
. Cette fonction doit renvoyer l’aire du
disque dont on lui a fourni le rayon R en argument.
Par exemple, l’exécution de l’instruction :
>>> aireDisque(2.5)
doit donner le résultat : 19.63495...volBoite(x1,x2,x3)
qui renvoie le volume d’une boîte
parallélépipédique dont on fournit les trois dimensions x1, x2, x3 en arguments.
Par exemple, l’exécution de l’instruction :
>>> volBoite(5.2, 7.7, 3.3)
doit donner le résultat : 132.132.ligneCar(n, car)
qui renvoie une chaîne de n caractères car.
Par exemple >>> ligneCar(7,"o")
donne 'ooooooo'
maximum(n1,n2,n3)
qui renvoie le plus grand de 3 nombres n1, n2,
n3 fournis en arguments.
Par exemple, l’exécution de l’instruction :
>>> maximum(2,5,4)
doit donner le résultat : 5. compteCar(car,ch)
qui renvoie le nombre de fois que l’on rencontre le
caractère car dans la chaîne de caractères ch.
Par exemple, l’exécution de l’instruction :
>>> compteCar(’e’, ’Cette phrase est un exemple’)
doit donner le résultat : 7
nomMois(n)
qui renvoie le nom du énième mois de l’année.
Par exemple, l’exécution de l’instruction :
>>> nomMois(4)
doit donner le résultat : Avril.
inverse(ch)
qui permette d’inverser l’ordre des caractères d’une
chaîne quelconque. La chaîne inversée sera renvoyée au programme appelant.
resoudPremierDegre(a,b)
qui affiche la solution éventuelle.
docstring
def distance(a,b): if a>=b: return a-b else: return b-aQue fait cette fonction?
exple_doctest.py
.
Documentons cette fonction:
def distance(a,b): ''' renvoie la distance entre les entiers a et b :param a,b:(int) :return:(int) :CU: aucune Exemples: >>> distance(5,3) 2 >>> distance(-4,7) 11 ''' if a>=b: return a-b else: return b-aOn peut accéder à la docstring d'une fonction avec la commande
help
>>> help(distance)
doctest
if __name__ == '__main__': import doctest doctest.testmod()La fonction testmod du module doctest est allée chercher dans les docstring des fonctions du module actuellement chargé, c’est-à-dire
exple_doctest.py
, tous les exemples (reconnaissables à la présence des triples chevrons >>>),
et a vérifié que la fonction documentée satisfait bien ces exemples. compteCar(car,ch)
.