Programmation Impérative
Fonctions Python
6
/
29
Rémi Emonet
Programmation Impérative Fonctions Python
6
: Plan
Retour qtido
Fonctions en Python
Pile d'Appels de Fonctions
Paramètres par Défauts
Fonctions et Programmes
Fonctions Comme Outils d'Abstraction
15
/
29
Rémi Emonet
Programmation Impérative Fonctions Python
6
: Plan
Retour qtido
Fonctions en Python
Pile d'Appels de Fonctions
Paramètres par Défauts
Fonctions et Programmes
Fonctions Comme Outils d'Abstraction
19
/
29
Rémi Emonet
Programmation Impérative Fonctions Python
6
: Plan
Retour qtido
Fonctions en Python
Pile d'Appels de Fonctions
Paramètres par Défauts
Fonctions et Programmes
Fonctions Comme Outils d'Abstraction
20
/
29
Rémi Emonet
Programmation Impérative Fonctions Python
Fonctions en Python
Les bibliothèques fournissent des fonctions
Il est possible d'écrire ses propres fonctions
ne pas réinventer la roue (pas plus d'une fois)
éviter de se répéter
éviter le copier/coller
Qu'est ce qu'une fonction
un nom
une liste de noms de paramètres
un corps (suite d'instructions)
possiblement une valeur retournée
21
/
29
Rémi Emonet
Programmation Impérative Fonctions Python
Utilisation de Fonctions en Python
Exemples
1
import
math
2
from
qtido
import
*
3
4
print(math.log10(
1000
))
5
d = math.sqrt(
16
+
9
)
6
print(d)
7
f = creer(
800
,
600
)
8
rectangle(f,
10
,
10
,
510
,
510
)
Quelles fonctions sont utilisées ci dessus ?
qtido.creer, qtido.rectangle, math.log10, math.sqrt, print
Un appel de fonction a une valeur
math.log10(100)
vaut 3.0 (que l'on passe à
print
)
creer(800,600)
vaut une valeur représentant la fenêtre créée
print(d)
vaut
None
None
est une valeur spéciale en Python, indiquant l'absence
de valeur
22
/
29
Rémi Emonet
Programmation Impérative Fonctions Python
Définition de Fonctions en Python
1
import
math
2
3
# les fonctions courtes peuvent être sur une ligne
4
def
puissance
(a, b)
:
return
a**b
5
6
def
info
(message)
:
print(
"INFO :"
, message)
7
8
def
distance_origine
(x, y)
:
9
"renvoie la distance du point (x,y) à l'origine)"
10
d = x*x + y*y
11
return
math.sqrt(d)
Suivant le modèle
1
def
«
nom
»
( «liste-param» )
:
2
"documentation de la fonction, optionnelle"
3
«instr»
# dans le corps de la fonction
4
«instr»
# dans le corps de la fonction
5
# dans le corps de la fonction
def
,
(
,
)
,
:
et l'indentation sont
obligatoires
dans «liste-param», les noms sont séparés par des
,
23
/
29
Rémi Emonet
Programmation Impérative Fonctions Python
Appel de Fonction et Valeur de Retour
1
def
puissance
(a, b)
:
2
print(
"notons que a vaut"
, a)
3
return
a**b
4
5
v = puissance(
2
*
21
,
4
)
6
v2 = puissance(
12
,
2
)
À chaque fois qu'une fonction est appelée
(ex,
puissance(2*21, 4)
)
les valeurs de paramètres sont calculées (ex, 42 et 4)
... et affectées à des variables (ex, a=42 et b=4)
le corps de la fonction est exécuté (le print, puis le return)
... jusque la fin ou jusque
return
la valeur de l'appel est la valeur retournée
(ex,
puissance(2*21, 4)
vaut
3111696
)
return
renvoie la valeur et
interrompt
la fonction
si la fin arrive sans
return
, la fonction renvoie
None
NB : chaque fonction a ses propres variables dites « locales »
24
/
29
Rémi Emonet
Programmation Impérative Fonctions Python
Portée et Visibilité des Variables
1
a =
1
2
b =
2
3
c =
3
4
def
fun
(b, d)
:
# b cache le b global
5
print(a)
# lecture seulement -> lit le a global
6
c =
10
# affectation -> nouvelle, qui cache le c global
7
print(c)
# 10
8
e =
3.14
# variable locale
9
10
fun(
1
,
1
)
# 1 10
11
print(c)
# 3
Variable globale
définie (affectées) dans la partie principale du programme
(sans indentation, ou dans un if, for, while)
visible de partout dans le programme
Variable locale
définie dans une fonction (ou en paramètres d'une fonction)
visible uniquement dans la fonction, changée à chaque appel
cache possible une variable globale du même nom
Ne pas utiliser trop de variables globales !
27
/
29
Rémi Emonet
Programmation Impérative Fonctions Python
6
: Plan
Retour qtido
Fonctions en Python
Pile d'Appels de Fonctions
Paramètres par Défauts
Fonctions et Programmes
Fonctions Comme Outils d'Abstraction
28
/
29
Rémi Emonet
Programmation Impérative Fonctions Python
Pile d'Appels de Fonctions
Qu'affiche ce programme ?
1
x=
42
2
def
mystere
(x, p)
:
3
if
x <=
1
:
4
res =
1
5
else
:
6
res = x * mystere(x-
1
, p+
1
)
7
print(p*
" "
, res)
8
return
res
9
10
x = mystere(
4
,
0
)
11
print(x)
Pile d'appels
chaque appel de fonction a ses propres variables
copie des valeurs passées en argument
stockage dans une pile en cas d'appels récursifs
Points Clés
Définition de fonction en python
Pile d'appels
chaque appel de fonction a ses propres variables
copie des valeurs passées en argument
stockage dans une pile en cas d'appels récursifs
29
/
29
Rémi Emonet
Programmation Impérative Fonctions Python
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !