Les fonctions en python - Terminale S Spécialité ISN

Les fonctions en python
Terminale S Spécialité ISN
Joffrey Cottin – joffrey.cottin@ac-clermont.fr
Lycée Saint Pierre Cusset
Année scolaire 2014 – 2015
Les fonctions en python
1 / 20
1
Définir une fonction en python
Introduction
Fonction sans paramètre
Fonction avec un paramètre
Fonction avec plusieurs paramètres
Remarque importante
2
Les modules en python
Un module, c’est quoi ?
Le module math
Le module random
Le module time
Le module turtle
Les fonctions en python
2 / 20
1 Définir une fonction en python
Les fonctions en python
Définir une fonction en python
3 / 20
1.1 Introduction
Les fonctions en python
Définir une fonction en python
4 / 20
1.1 Introduction
De manière fréquente, il est possible de rencontrer une même séquence
d’instructions à plusieurs reprises dans un programme.
Afin d’éviter les répétitions, une solution consiste à créer des
fonctions avec ou sans paramètres.
Les fonctions en python
Définir une fonction en python
4 / 20
1.1 Introduction
De manière fréquente, il est possible de rencontrer une même séquence
d’instructions à plusieurs reprises dans un programme.
Afin d’éviter les répétitions, une solution consiste à créer des
fonctions avec ou sans paramètres.
La syntaxe d’une fonction est :
Les fonctions en python
Définir une fonction en python
4 / 20
1.1 Introduction
De manière fréquente, il est possible de rencontrer une même séquence
d’instructions à plusieurs reprises dans un programme.
Afin d’éviter les répétitions, une solution consiste à créer des
fonctions avec ou sans paramètres.
La syntaxe d’une fonction est :
1
2
3
4
5
6
def nomDeLaFonction(argument1, argument2, ...) :
""" description de la fonction """
<instruction 1>
# les << : >> après le nom de
<instruction 2>
# la fonction sont indispensables
...
# au même titre que l’indentation
<instruction p>
Les fonctions en python
Définir une fonction en python
4 / 20
1.1 Introduction
De manière fréquente, il est possible de rencontrer une même séquence
d’instructions à plusieurs reprises dans un programme.
Afin d’éviter les répétitions, une solution consiste à créer des
fonctions avec ou sans paramètres.
La syntaxe d’une fonction est :
1
2
3
4
5
6
def nomDeLaFonction(argument1, argument2, ...) :
""" description de la fonction """
<instruction 1>
# les << : >> après le nom de
<instruction 2>
# la fonction sont indispensables
...
# au même titre que l’indentation
<instruction p>
Définition
argument1, argument2, ... sont appelés les arguments ou les
paramètres de la fonction.
Les fonctions en python
Définir une fonction en python
4 / 20
1.2 Fonction sans paramètre
Les fonctions en python
Définir une fonction en python
5 / 20
1.2 Fonction sans paramètre
Une fonction n’a pas forcément d’argument, néanmoins, les « () »
sont indispensables.
Les fonctions en python
Définir une fonction en python
5 / 20
1.2 Fonction sans paramètre
Une fonction n’a pas forcément d’argument, néanmoins, les « () »
sont indispensables.
Exercice
Écrire un algorithme puis une fonction table7() qui affiche la table de
multiplication de 7 de 1 à 10.
Les fonctions en python
Définir une fonction en python
5 / 20
1.2 Fonction sans paramètre
Une fonction n’a pas forcément d’argument, néanmoins, les « () »
sont indispensables.
Exercice
Écrire un algorithme puis une fonction table7() qui affiche la table de
multiplication de 7 de 1 à 10.
Traitement et Sortie
Pour k allant de 1 à 10 faire
Afficher « k x 7 ».
FinPour
FinTraitement
Les fonctions en python
Définir une fonction en python
5 / 20
1.2 Fonction sans paramètre
Les fonctions en python
Définir une fonction en python
6 / 20
1.2 Fonction sans paramètre
1
2
3
4
def table7():
"""fonction permettant d’obtenir la table par 7"""
for k in range(1,11):
print(’%s x 7 = %s’ %(k,k*7))
Les fonctions en python
Définir une fonction en python
6 / 20
1.2 Fonction sans paramètre
1
2
3
4
def table7():
"""fonction permettant d’obtenir la table par 7"""
for k in range(1,11):
print(’%s x 7 = %s’ %(k,k*7))
Pour utiliser la fonction, il suffit de l’appeler par son nom soit dans le
même fichier soit dans le terminal.
Les fonctions en python
Définir une fonction en python
6 / 20
1.2 Fonction sans paramètre
1
2
3
4
def table7():
"""fonction permettant d’obtenir la table par 7"""
for k in range(1,11):
print(’%s x 7 = %s’ %(k,k*7))
Pour utiliser la fonction, il suffit de l’appeler par son nom soit dans le
même fichier soit dans le terminal.
1
2
3
4
5
6
7
8
9
10
11
>>> table7()
1 x 7 = 7
2 x 7 = 14
3 x 7 = 21
4 x 7 = 28
5 x 7 = 35
6 x 7 = 42
7 x 7 = 49
8 x 7 = 56
9 x 7 = 63
10 x 7 = 70
Les fonctions en python
Définir une fonction en python
6 / 20
1.3 Fonction avec un paramètre
Les fonctions en python
Définir une fonction en python
7 / 20
1.3 Fonction avec un paramètre
Exercice
Écrire un algorithme puis une fonction table(...) qui affiche la table
de multiplication de n’importe quel nombre de 1 à 10.
Les fonctions en python
Définir une fonction en python
7 / 20
1.3 Fonction avec un paramètre
Exercice
Écrire un algorithme puis une fonction table(...) qui affiche la table
de multiplication de n’importe quel nombre de 1 à 10.
Le principe est le même, hormis que que l’utilisateur doit entrer un
nombre qui servira de base aux calculs.
Les fonctions en python
Définir une fonction en python
7 / 20
1.3 Fonction avec un paramètre
Exercice
Écrire un algorithme puis une fonction table(...) qui affiche la table
de multiplication de n’importe quel nombre de 1 à 10.
Le principe est le même, hormis que que l’utilisateur doit entrer un
nombre qui servira de base aux calculs.
Entrée : Saisir le nombre de base.
Traitement et Sortie
Pour k allant de 1 à 10 faire
Afficher « k x base ».
FinPour
FinTraitement
Les fonctions en python
Définir une fonction en python
7 / 20
1.3 Fonction avec un paramètre
Les fonctions en python
Définir une fonction en python
8 / 20
1.3 Fonction avec un paramètre
1
2
3
4
def table(base):
""" fonction permettant d’obtenir la table par base"""
for k in range(1,11) :
print(’%s x %s = %s’ %(k,base,k*base))
Les fonctions en python
Définir une fonction en python
8 / 20
1.3 Fonction avec un paramètre
1
2
3
4
def table(base):
""" fonction permettant d’obtenir la table par base"""
for k in range(1,11) :
print(’%s x %s = %s’ %(k,base,k*base))
On appelle la fonction en lui indiquant base comme paramètre.
Les fonctions en python
Définir une fonction en python
8 / 20
1.3 Fonction avec un paramètre
1
2
3
4
def table(base):
""" fonction permettant d’obtenir la table par base"""
for k in range(1,11) :
print(’%s x %s = %s’ %(k,base,k*base))
On appelle la fonction en lui indiquant base comme paramètre.
1
2
3
4
5
6
7
8
9
10
11
>>> table(13) # table de 13
1 x 13 = 13
2 x 13 = 26
3 x 13 = 39
4 x 13 = 52
5 x 13 = 65
6 x 13 = 78
7 x 13 = 91
8 x 13 = 104
9 x 13 = 117
10 x 13 = 130
Les fonctions en python
Définir une fonction en python
8 / 20
1.3 Fonction avec un paramètre
1
2
3
4
def table(base):
""" fonction permettant d’obtenir la table par base"""
for k in range(1,11) :
print(’%s x %s = %s’ %(k,base,k*base))
On appelle la fonction en lui indiquant base comme paramètre.
1
2
3
4
5
6
7
8
9
10
11
>>> table(13) # table de 13
1 x 13 = 13
2 x 13 = 26
3 x 13 = 39
4 x 13 = 52
5 x 13 = 65
6 x 13 = 78
7 x 13 = 91
8 x 13 = 104
9 x 13 = 117
10 x 13 = 130
Les fonctions en python
1
2
3
4
5
6
7
8
9
10
11
>>> table(9) # table de 9
1 x 9 = 9
2 x 9 = 18
3 x 9 = 27
4 x 9 = 36
5 x 9 = 45
6 x 9 = 54
7 x 9 = 63
8 x 9 = 72
9 x 9 = 81
10 x 9 = 90
Définir une fonction en python
8 / 20
1.4 Fonction avec plusieurs paramètres
Les fonctions en python
Définir une fonction en python
9 / 20
1.4 Fonction avec plusieurs paramètres
Exercice
Écrire un algorithme puis une fonction tableMulti(...) qui affiche la
table de multiplication de n’importe quel nombre en choisissant le
début et la fin de la table.
Les fonctions en python
Définir une fonction en python
9 / 20
1.4 Fonction avec plusieurs paramètres
Exercice
Écrire un algorithme puis une fonction tableMulti(...) qui affiche la
table de multiplication de n’importe quel nombre en choisissant le
début et la fin de la table.
Reste à modifier l’algorithme précédent avec les paramètres debut et
fin.
Les fonctions en python
Définir une fonction en python
9 / 20
1.4 Fonction avec plusieurs paramètres
Exercice
Écrire un algorithme puis une fonction tableMulti(...) qui affiche la
table de multiplication de n’importe quel nombre en choisissant le
début et la fin de la table.
Reste à modifier l’algorithme précédent avec les paramètres debut et
fin.
Entrée : Saisir base, debut, fin.
Traitement et Sortie
Pour k allant de debut à fin faire
Afficher « k ∗ base ».
FinPour
FinTraitement
Les fonctions en python
Définir une fonction en python
9 / 20
1.4 Fonction avec plusieurs paramètres
Les fonctions en python
Définir une fonction en python
10 / 20
1.4 Fonction avec plusieurs paramètres
1
2
3
4
5
def tableMulti(base, debut, fin):
"""fonction permettant d’obtenir la table par base de debut à fin"""
print(’Fragment de la table de multiplication par %s :’ %base)
for k in range(debut,fin+1):
print(’%s x %s = %s’ %(k,base,k*base))
Les fonctions en python
Définir une fonction en python
10 / 20
1.4 Fonction avec plusieurs paramètres
1
2
3
4
5
def tableMulti(base, debut, fin):
"""fonction permettant d’obtenir la table par base de debut à fin"""
print(’Fragment de la table de multiplication par %s :’ %base)
for k in range(debut,fin+1):
print(’%s x %s = %s’ %(k,base,k*base))
Cette fonction utilise les trois paramètres : base, debut et fin.
Les fonctions en python
Définir une fonction en python
10 / 20
1.4 Fonction avec plusieurs paramètres
1
2
3
4
5
def tableMulti(base, debut, fin):
"""fonction permettant d’obtenir la table par base de debut à fin"""
print(’Fragment de la table de multiplication par %s :’ %base)
for k in range(debut,fin+1):
print(’%s x %s = %s’ %(k,base,k*base))
Cette fonction utilise les trois paramètres : base, debut et fin.
1
2
3
4
5
6
7
8
9
10
11
>>> tableMulti(8, 13, 21)
Fragment de la table de multiplication par 8 :
13 x 8 = 104
14 x 8 = 112
15 x 8 = 120
16 x 8 = 128
17 x 8 = 136
18 x 8 = 144
19 x 8 = 152
20 x 8 = 160
21 x 8 = 168
Les fonctions en python
Définir une fonction en python
10 / 20
1.5 Remarque importante
Les fonctions en python
Définir une fonction en python
11 / 20
1.5 Remarque importante
Il est possible de regrouper chacune des fonctions table7(), table()
et tableMulti() dans un même fichier multiplication.py.
Les fonctions en python
Définir une fonction en python
11 / 20
1.5 Remarque importante
Il est possible de regrouper chacune des fonctions table7(), table()
et tableMulti() dans un même fichier multiplication.py.
Après avoir chargé ce fichier, essayer les commandes :
Les fonctions en python
Définir une fonction en python
11 / 20
1.5 Remarque importante
Il est possible de regrouper chacune des fonctions table7(), table()
et tableMulti() dans un même fichier multiplication.py.
Après avoir chargé ce fichier, essayer les commandes :
1
2
3
>>> help(table7)
>>> help(table)
>>> help(tableMulti)
Les fonctions en python
# pas de parenthèses ici
Définir une fonction en python
11 / 20
2 Les modules en python
Les fonctions en python
Les modules en python
12 / 20
2.1 Un module, c’est quoi ?
Les fonctions en python
Les modules en python
13 / 20
2.1 Un module, c’est quoi ?
En python, certaines fonctions font partie du « pack » de base qui est
toujours disponible, par exemple, len(), input(), print(), . . .
Les fonctions en python
Les modules en python
13 / 20
2.1 Un module, c’est quoi ?
En python, certaines fonctions font partie du « pack » de base qui est
toujours disponible, par exemple, len(), input(), print(), . . .
D’autres fonctions, comme les fonctions sin et cos ne sont pas
présentes dans le « pack » de base contrairement à l’addition, la
soustraction, . . .
Les fonctions en python
Les modules en python
13 / 20
2.1 Un module, c’est quoi ?
En python, certaines fonctions font partie du « pack » de base qui est
toujours disponible, par exemple, len(), input(), print(), . . .
D’autres fonctions, comme les fonctions sin et cos ne sont pas
présentes dans le « pack » de base contrairement à l’addition, la
soustraction, . . .
Il faut donc faire appel aux modules . . .
Les fonctions en python
Les modules en python
13 / 20
2.1 Un module, c’est quoi ?
En python, certaines fonctions font partie du « pack » de base qui est
toujours disponible, par exemple, len(), input(), print(), . . .
D’autres fonctions, comme les fonctions sin et cos ne sont pas
présentes dans le « pack » de base contrairement à l’addition, la
soustraction, . . .
Il faut donc faire appel aux modules . . .
Définition
Un module en python est une bibliothèque de fonction, non disponible
directement au chargement de python.
Les fonctions en python
Les modules en python
13 / 20
2.2 Le module math
Les fonctions en python
Les modules en python
14 / 20
2.2 Le module math
Définition
Le module math contient toutes le fonctions indispensables en
mathématiques.
Les fonctions en python
Les modules en python
14 / 20
2.2 Le module math
Définition
Le module math contient toutes le fonctions indispensables en
mathématiques.
On peut importer une fonction particulière :
Les fonctions en python
Les modules en python
14 / 20
2.2 Le module math
Définition
Le module math contient toutes le fonctions indispensables en
mathématiques.
On peut importer une fonction particulière :
1
>>> from math import sqrt # importe la fonction racine carrée
Les fonctions en python
Les modules en python
14 / 20
2.2 Le module math
Définition
Le module math contient toutes le fonctions indispensables en
mathématiques.
On peut importer une fonction particulière :
1
>>> from math import sqrt # importe la fonction racine carrée
On peut importer un module en entier :
Les fonctions en python
Les modules en python
14 / 20
2.2 Le module math
Définition
Le module math contient toutes le fonctions indispensables en
mathématiques.
On peut importer une fonction particulière :
1
>>> from math import sqrt # importe la fonction racine carrée
On peut importer un module en entier :
1
2
3
4
5
6
7
>>> from math import * # importe tout le module math
>>> pi
3.141592653589793
# ou
>>> import math
# méthode préconisée
>>> math.pi
3.141592653589793
Les fonctions en python
Les modules en python
14 / 20
2.2 Le module math
Les fonctions en python
Les modules en python
15 / 20
2.2 Le module math
Pour connaître le contenu d’un module :
Les fonctions en python
Les modules en python
15 / 20
2.2 Le module math
Pour connaître le contenu d’un module :
1
2
3
4
5
6
7
8
>>> dir(math)
[’__doc__’, ’__name__’, ’__package__’, ’acos’, ’acosh’, ’asin’,
’asinh’, ’atan’, ’atan2’, ’atanh’, ’ceil’, ’copysign’, ’cos’,
’cosh’, ’degrees’, ’e’, ’erf’, ’erfc’, ’exp’, ’expm1’, ’fabs’,
’factorial’, ’floor’, ’fmod’, ’frexp’, ’fsum’, ’gamma’, ’hypot’,
’isfinite’, ’isinf’, ’isnan’, ’ldexp’, ’lgamma’, ’log’, ’log10’,
’log1p’, ’modf’, ’pi’, ’pow’, ’radians’, ’sin’, ’sinh’, ’sqrt’,
’tan’, ’tanh’, ’trunc’]
Les fonctions en python
Les modules en python
15 / 20
2.2 Le module math
Pour connaître le contenu d’un module :
1
2
3
4
5
6
7
8
>>> dir(math)
[’__doc__’, ’__name__’, ’__package__’, ’acos’, ’acosh’, ’asin’,
’asinh’, ’atan’, ’atan2’, ’atanh’, ’ceil’, ’copysign’, ’cos’,
’cosh’, ’degrees’, ’e’, ’erf’, ’erfc’, ’exp’, ’expm1’, ’fabs’,
’factorial’, ’floor’, ’fmod’, ’frexp’, ’fsum’, ’gamma’, ’hypot’,
’isfinite’, ’isinf’, ’isnan’, ’ldexp’, ’lgamma’, ’log’, ’log10’,
’log1p’, ’modf’, ’pi’, ’pow’, ’radians’, ’sin’, ’sinh’, ’sqrt’,
’tan’, ’tanh’, ’trunc’]
Pour avoir des informations sur une fonction, on utilise
help(<fonction>), ou mieux, aller lire la documentation en ligne.
Les fonctions en python
Les modules en python
15 / 20
2.2 Le module math
Pour connaître le contenu d’un module :
1
2
3
4
5
6
7
8
>>> dir(math)
[’__doc__’, ’__name__’, ’__package__’, ’acos’, ’acosh’, ’asin’,
’asinh’, ’atan’, ’atan2’, ’atanh’, ’ceil’, ’copysign’, ’cos’,
’cosh’, ’degrees’, ’e’, ’erf’, ’erfc’, ’exp’, ’expm1’, ’fabs’,
’factorial’, ’floor’, ’fmod’, ’frexp’, ’fsum’, ’gamma’, ’hypot’,
’isfinite’, ’isinf’, ’isnan’, ’ldexp’, ’lgamma’, ’log’, ’log10’,
’log1p’, ’modf’, ’pi’, ’pow’, ’radians’, ’sin’, ’sinh’, ’sqrt’,
’tan’, ’tanh’, ’trunc’]
Pour avoir des informations sur une fonction, on utilise
help(<fonction>), ou mieux, aller lire la documentation en ligne.
1
2
3
>>> import math
>>> help(math.cos)
Help on built-in function cos in module math:
4
5
6
cos(...)
cos(x)
7
8
Return the cosine of x (measured in radians).
Les fonctions en python
Les modules en python
15 / 20
2.3 Le module random
Les fonctions en python
Les modules en python
16 / 20
2.3 Le module random
Définition
Le module random contient toutes les fonctions indispensables
relatives à l’aléatoire.
Les fonctions en python
Les modules en python
16 / 20
2.3 Le module random
Définition
Le module random contient toutes les fonctions indispensables
relatives à l’aléatoire.
Les principales fonctions de ce module que nous utiliserons :
randint(a,b) : renvoie aléatoirement un entier compris entre a
et b (inclus tous les deux).
Attention : a et b doivent être entiers (négatifs éventuellement).
random() : renvoie aléatoirement un réel compris entre 0 (inclus)
et 1 (exclu).
Les fonctions en python
Les modules en python
16 / 20
2.3 Le module random
Définition
Le module random contient toutes les fonctions indispensables
relatives à l’aléatoire.
Les principales fonctions de ce module que nous utiliserons :
randint(a,b) : renvoie aléatoirement un entier compris entre a
et b (inclus tous les deux).
Attention : a et b doivent être entiers (négatifs éventuellement).
random() : renvoie aléatoirement un réel compris entre 0 (inclus)
et 1 (exclu).
1
2
3
4
5
>>> import random
>>> random.randint(2,75)
63
>>> random.random()
0.46480356897753472
Les fonctions en python
Les modules en python
16 / 20
2.4 Le module time
Les fonctions en python
Les modules en python
17 / 20
2.4 Le module time
Définition
Le module time contient des fonctions relatives au temps machine.
Les fonctions en python
Les modules en python
17 / 20
2.4 Le module time
Définition
Le module time contient des fonctions relatives au temps machine.
Les principales fonctions de ce module que nous utiliserons :
la fonction time() permet de récupérer un temps machine (donc
par différence de chronométrer).
la fonction localtime() permet de récupérer l’« heure ».
la fonction sleep() permet de faire des pauses.
Les fonctions en python
Les modules en python
17 / 20
2.4 Le module time
Définition
Le module time contient des fonctions relatives au temps machine.
Les principales fonctions de ce module que nous utiliserons :
la fonction time() permet de récupérer un temps machine (donc
par différence de chronométrer).
la fonction localtime() permet de récupérer l’« heure ».
la fonction sleep() permet de faire des pauses.
Exercice
Écrire un algorithme puis une fonction toto qui
affiche les entiers de 0 à 5 en faisant une pause de 1 s entre les
affichages ;
calcul le temps nécessaire à l’exécution de cette fonction.
Les fonctions en python
Les modules en python
17 / 20
2.4 Le module time
Les fonctions en python
Les modules en python
18 / 20
2.4 Le module time
1
import time
# importe le module time
2
3
4
5
6
7
8
9
10
11
12
def toto():
"""essai du module time avec une boucle tant que"""
c1=time.time()
i=0
while i<6:
print(i, end=’ ’)
time.sleep(1)
i=i+1
c2=time.time()
print("Temps écoulé :",c2-c1)
Les fonctions en python
Les modules en python
18 / 20
2.4 Le module time
1
import time
# importe le module time
2
3
4
5
6
7
8
9
10
11
12
1
def toto():
"""essai du module time avec une boucle tant que"""
c1=time.time()
i=0
while i<6:
print(i, end=’ ’)
time.sleep(1)
i=i+1
c2=time.time()
print("Temps écoulé :",c2-c1)
import time
# importe le module time
2
3
4
5
6
7
8
9
10
def toto():
"""essai du module time avec une boucle for"""
c1=time.time()
for i in range(6):
print(i, end=’ ’)
time.sleep(1)
c2=time.time()
print("Temps écoulé :",c2-c1)
Les fonctions en python
Les modules en python
18 / 20
2.5 Le module turtle
Les fonctions en python
Les modules en python
19 / 20
2.5 Le module turtle
Définition
Le module turtle permet de réaliser des « graphiques tortue »,
c’est-à-dire des dessins géométriques correspondant à la piste laissée
derrière elle par une petite « tortue » virtuelle, dont nous contrôlons
les déplacements sur l’écran de l’ordinateur à l’aide d’instructions
simples.
Les fonctions en python
Les modules en python
19 / 20
2.5 Le module turtle
Définition
Le module turtle permet de réaliser des « graphiques tortue »,
c’est-à-dire des dessins géométriques correspondant à la piste laissée
derrière elle par une petite « tortue » virtuelle, dont nous contrôlons
les déplacements sur l’écran de l’ordinateur à l’aide d’instructions
simples.
1
import turtle
2
3
4
5
6
7
8
turtle.forward(120)
turtle.left(90)
turtle.color(’red’)
turtle.forward(80)
# Et bien d’autres actions
# cf. plus tard ...
Les fonctions en python
Les modules en python
19 / 20
2.5 Le module turtle
Définition
Le module turtle permet de réaliser des « graphiques tortue »,
c’est-à-dire des dessins géométriques correspondant à la piste laissée
derrière elle par une petite « tortue » virtuelle, dont nous contrôlons
les déplacements sur l’écran de l’ordinateur à l’aide d’instructions
simples.
1
import turtle
2
3
4
5
6
7
8
turtle.forward(120)
turtle.left(90)
turtle.color(’red’)
turtle.forward(80)
# Et bien d’autres actions
# cf. plus tard ...
Les fonctions en python
Les modules en python
19 / 20
FIN
Les fonctions en python
Les modules en python
20 / 20