PCSI – IPT G. Monod
Fonctions.docx
1/4
Python – Fonctions
Une fonction f utilise un ou plusieurs objets x, y, zappelés arguments de la fonction, pour effectuer un calcul ou un
traitement puis retourne un objet f(x,y,z).
Structuration d’un programme : Exemple
""" Structure d’un programme """
# Modules
import random as rd
import math
# Fonctions
# Initialisation des variables
x, y = 1,2
# Pgm principal
# Affichage
print( )
Définition et appel d’une fonction
Exemple (fonction mathématique) Syntaxe Python
Définition de la fonction
Arguments formels
(x, y) **2
f x y
= +
def f(x,y):
return x**2+y
# L’indentation délimite la fonction
# Aucun résultat sans return !
# return
print !
Appel de la fonction
Arguments effectifs f(1,0) le résultat est 1 f(1,0) (dans le shell interactif)
print(f(1,0)) (dans un fichier-programme)
Exemple
""" Structure d’un programme """
# Modules
import random as rd
import math
# Fonctions
def f(x,y):
""" Retourne x²+y """
# Docstring = commentaire
return x**2+y
# Initialisation des variables
x, y = 1,2
# Pgm principal
z = f(x,y)
# Affichage
print('z = ', z)
Définition
des fonctions
Appel
des fonctions
Définition
de
f(x,y)
de
f avec les arguments x=1 et y=2
x et y sont des arguments formels (ils
peuvent prendre n’importe quelle valeur
lors de l’appel de la fonction)
PCSI – IPT G. Monod
Fonctions.docx
2/4
Plusieurs return
Exemple (fonction mathématique) Syntaxe Python
Définition de la fonction
Arguments formels
si 0
( )
sinon
x x
f x x
=
def f(x):
if x >= 0:
return x # Sortie immédiate
else:
return –x
Appel
de la fonction
Arguments effectifs
f
(-5)
f
(-5) (dans le shell interactif)
print(
f
(-5)) (dans un fichier-programme)
return None
Exemple (fonction mathématique) Syntaxe Python
Définition
de la fonction
Arguments formels
si 0
( )
sinon
x
f x rien
x
=
def maFct(x):
if x >= 0:
return sqrt(x)
else:
return None # Valeur None
Appel
de la fonction
Arguments effectifs
f(-5) f(-5) (dans le shell interactif)
print(f(-5)) (dans un fichier-programme)
Plusieurs valeurs retournées
Une fonction peut retourner
plusieurs valeurs
. Le résultat est alors un
tuple
.
Exemple :
def maFct(x) :
return x**2,x
maFct(2) renvoie le tuple (4,2).
Pour accéder aux valeurs du tuple-résultat :
res = maFct(2)
a,b = res[0], res[1] ou bien a,b = maFct(2)
on utilise par maFct(2)[0] ou maFct(2)[1].
Fonction sans argument
Une fonction peut ne posséder
aucun argument
.
Exemple :
def maFct() :
return []
Argument avec valeurs par défaut
Une fonction peut posséder des arguments ayant une
valeur par défaut
(placés à la fin des arguments obligatoires).
Exemple :
def maFct(x,y=0) :
return x**2+y
maFct(1) renvoie 1.
maFct(1,2) renvoie 3.
PCSI – IPT G. Monod
Fonctions.docx
3/4
Variables globales et variables locales
Une variable globale est une variable définie dans le corps du programme (a dans l’exemple ci-dessus), elle est disponible dans
tout le programme y compris à l’intérieur des fonctions.
Une variable locale est une variable définie dans une fonction (val dans l’exemple ci-dessus), elle n’existe qu’à l’intérieur de la
fonction (elle n’est pas définie à l’extérieur de la fonction).
Portée des variables
Exemple 1 Syntaxe Python bonne pratique
Définition de la fonction
Arguments formels
(x) **2
f x p
= +
(p = paramètre)
def f(x):
global p #
Déclaration variable globale
val = x**2+p
return val
Appel de la fonction
Arguments effectifs
a = 1
p = 4
f(a)
a = 1 # Transmis à la fonction = argument effectif
p = 4 # Utilisé par la fonction = variable globale
f(a)
Mauvaise pratique :
def f(x):
val = x**2+p #
p implicitement globale
return val
Exemple 2 Syntaxe Python
Définition de la fonction
Arguments formels
(x) **2
f x p
= +
(p = paramètre) def f(x):
p = 0 #
Variable locale, p=0 dans la fct
val = x**2+p
return val
Appel de la fonction
Arguments effectifs p = 4
f(0) p = 4 # variable globale : p = 4 dans le programme
f(a)
Conclusion
Existe à l’extérieur des fonctions Existe à l’intérieur des fonctions
Variable globale définie dans le programme Oui Oui sauf si variable locale de même nom
Variable locale définie dans une fonction Non Oui
Re-définition locale
ou surcharge de p
PCSI – IPT G. Monod
Fonctions.docx
4/4
Mauvaises pratiques
Ne pas modifier une variable globale dans une fonction
Mauvaise pratique Bonne pratique
Définition
def maFct() :
global y
y = y+2 # return y inutile
def maFct() :
global y
return y+2
Appel
y = 0
maFct()
# Modification de y invisible
y = 0
y = maFct()
# Modification de y explicite
Ne pas affecter un argument
Mauvaise pratique Bonne pratique
Définition
def maFct(x) :
x = 2*x
return x+1
def maFct(x) :
y = 2*x
return y+1
1 / 4 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 !