Vous êtes sur la page 1sur 41

Programmation en Python

Chapitre 3: Les fonctions

Dr. Gomis
L2 MPI & PC - UFR SATIC/ UADB

6 décembre 2022
Programmation en Python 2

Plan

Qu’est ce qu’une fonction ?

Les modules et les packages

Quelques fonctions intégrées

Références

Dr. Gomis Programmation en Python 2


Programmation en Python 3
Qu’est ce qu’une fonction ?

Définition

d e f nomFonction ( param1 , param2 , . . . , paramN ) :


" D oc u m en t a ti on de l a f o n c t i o n "
# c o n t e n u de l a f o n c t i o n
r e t u r n expression

Dr. Gomis Programmation en Python 3


Programmation en Python 3
Qu’est ce qu’une fonction ?

Définition

d e f nomFonction ( param1 , param2 , . . . , paramN ) :


" D oc u m en t a ti on de l a f o n c t i o n "
# c o n t e n u de l a f o n c t i o n
r e t u r n expression

I return définit la valeur de retour de la fonction

Dr. Gomis Programmation en Python 3


Programmation en Python 3
Qu’est ce qu’une fonction ?

Définition

d e f nomFonction ( param1 , param2 , . . . , paramN ) :


" D oc u m en t a ti on de l a f o n c t i o n "
# c o n t e n u de l a f o n c t i o n
r e t u r n expression

I return définit la valeur de retour de la fonction

I sans return les résultats de la fonction doivent être affichés


(procédure)

Dr. Gomis Programmation en Python 3


Programmation en Python 4
Qu’est ce qu’une fonction ?

Définition
I Retourner plusieurs valeurs

d e f Fonction1 ( ) :
"""
Doc u m en t a tion de l a f o n c t i o n
sur p l u s i e u r s l i g n e s
"""
# c o n t e n u de l a f o n c t i o n
r e t u r n exp1 , exp2 , . . . , expN

Dr. Gomis Programmation en Python 4


Programmation en Python 4
Qu’est ce qu’une fonction ?

Définition
I Retourner plusieurs valeurs

d e f Fonction1 ( ) :
"""
Doc u m en t a tion de l a f o n c t i o n
sur p l u s i e u r s l i g n e s
"""
# c o n t e n u de l a f o n c t i o n
r e t u r n exp1 , exp2 , . . . , expN

Dr. Gomis Programmation en Python 4


Programmation en Python 4
Qu’est ce qu’une fonction ?

Définition
I Retourner plusieurs valeurs

d e f Fonction1 ( ) :
"""
Doc u m en t a tion de l a f o n c t i o n
sur p l u s i e u r s l i g n e s
"""
# c o n t e n u de l a f o n c t i o n
r e t u r n exp1 , exp2 , . . . , expN

I Appel :
a1, a2, ..., aN = Fonction1()
Dr. Gomis Programmation en Python 4
Programmation en Python 5
Qu’est ce qu’une fonction ?

Appel de fonction

d e f somme ( a , b , c ) :
return a + b + c

r = somme ( 2 , 1 5 , 1 1) # print ( r )

# r = somme ( b = 1 5 , a = 2 , c = 11 )

p r i n t ( somme ( 2 , 1 5 , 1 1) )

p r i n t ( somme ( b = 1 5 , a = 2 , c = 1 1) )

Dr. Gomis Programmation en Python 5


Programmation en Python 6
Qu’est ce qu’une fonction ?

Appel de fonction

d e f modifier ( a , b , c) :
print ( a, " d e v i e n t " , a + 1)
print ( b, " d e v i e n t " , b + 5)
print ( c, " d e v i e n t " , c + 7)

modifier ( 2 , 1 5 , 1 1)

modifier ( c = 1 1 , a = 2 , b = 1 5)

# P o s s i b i l i t é de f a i r e un a p p e l de f o n c t i o n s a n s
# r e s p e c t e r l ' o r d r e des arguments

Dr. Gomis Programmation en Python 6


Programmation en Python 7
Qu’est ce qu’une fonction ?

Arguments par défaut


def f ( a = 1 , b = 3 , c = 2) :
return a + b ∗ c

# Les d i f f é r e n t s a p p e l s p o s s i b l e s

r1 = f ( )

r2 = f ( 4 )

r3 = f ( 4 , 5 )

r4 = f ( c = 9 , a = 3 )
Dr. Gomis Programmation en Python 7
Programmation en Python 8
Qu’est ce qu’une fonction ?

Arguments par défaut


# Ordre important
d e f somme ( a , b = 3 , c = 2 ) :
return a + b + c

# Les d i f f é r e n t s a p p e l s p o s s i b l e s

x = somme ( 4 )

y = somme ( 4 , 5 )

z = somme ( 4 , 5 , 7 )

w = somme ( 4 , c = 5 )
Dr. Gomis Programmation en Python 8
Programmation en Python 9
Qu’est ce qu’une fonction ?

Possibilité de simplifier la définition d’une fonction

# Tr è s u t i l e p o u r l e s f o n c t i o n s math é m a t i q u e s

f = lambda x : 2 ∗ x + 1 # f ( x ) = 2x + 1

g = lambda x , y : x + y # g(x , y) = x + y

f(2) # 5

g (4 , 5) # 9

Dr. Gomis Programmation en Python 9


Programmation en Python 10
Qu’est ce qu’une fonction ?

Variables locales et variables globales

Une variable locale


Une variable locale est définie à l’intérieur d’une fonction. Elle n’est
accessible qu’à l’intérieur de celle-ci.

Dr. Gomis Programmation en Python 10


Programmation en Python 10
Qu’est ce qu’une fonction ?

Variables locales et variables globales

Une variable locale


Une variable locale est définie à l’intérieur d’une fonction. Elle n’est
accessible qu’à l’intérieur de celle-ci.
Une variable globale
Une variable globale est définie en dehors de toute fonction. Elle est
visible et accessible à partir du corps de toute fonction du programme,
mais aucune d’entre elles ne peut modifier sa valeur.

Dr. Gomis Programmation en Python 10


Programmation en Python 11
Qu’est ce qu’une fonction ?

Portée d’une variable locale


d e f salutation ( nom ) :
ch = " S a l u t " + nom # variable locale
r e t u r n ch

ch = " H e l l o " # variable globale

salut = salutation ( " J a c k " ) # Appel

p r i n t ( salut ) # S a l u t Jack
p r i n t ( ch ) # Hello

# La portée d’une variable locale est limitée au corps de la fonction.


Dr. Gomis Programmation en Python 11
Programmation en Python 12
Qu’est ce qu’une fonction ?

Portée d’une variable locale


d e f salutation ( nom ) :
ch = " s a l u t " + nom
r e t u r n ch

ch = " H e l l o "

salut = salutation ( " J a c k " ) # Appel

p r i n t ( salut ) # S a l u t Jack
p r i n t ( ch ) # Hello

# La fonction "salutation" ne peut pas changer le contenu de la


variable globale ch
Dr. Gomis Programmation en Python 12
Programmation en Python 13
Qu’est ce qu’une fonction ?

Étendre la portée d’une variable locale


d e f salutation ( nom ) :
g l o b a l ch
ch = " S a l u t " + nom
r e t u r n ch

ch = " H e l l o "

salut = salutation ( " J a c k " ) # Appel

p r i n t ( salut ) # S a l u t Jack
p r i n t ( ch ) # S a l u t Jack

# Maintenant, oui
Dr. Gomis Programmation en Python 13
Programmation en Python 14
Qu’est ce qu’une fonction ?

Générateurs de fonctions

d e f gen ( x , y ) :
yield x + y
yield x ∗ y
yield x // y

generateur = gen ( 7 , 2 )

f o r resultat i n generateur :
p r i n t ( resultat )

Dr. Gomis Programmation en Python 14


Programmation en Python 15
Qu’est ce qu’une fonction ?

Générateurs de fonctions
d e f gen ( x , y ) :
yield x + y
yield x ∗ y
yield x // y

generateur = gen ( 7 , 2 )

resultat1 = n e x t ( generateur )

resultat2 = n e x t ( generateur )

resultat3 = n e x t ( generateur )
Dr. Gomis Programmation en Python 15
Programmation en Python 16
Qu’est ce qu’une fonction ?

Documenter une fonction

d e f somme ( x , y ) :
" r e t o u r n e l a somme de deux e n t i e r s "
s = x + y
return s

# a f f i c h e r l ' aide sur la fonction

h e l p ( somme )

somme ?

Dr. Gomis Programmation en Python 16


Programmation en Python 17
Les modules et les packages

Importation de modules
Un module
En Python, les programmes peuvent être décomposés en modules
(fichiers d’extensions .py). Le code que d’autres ont écrit est
généralement fourni dans un module.
i m p o r t math # I m p o r t e r un module

d i r ( math ) # L i s t e d e s f o n c t i o n s du module

math ? # A i d e s u r l e module math

math . sqrt ? # Aide sur l a f o n c t i o n s q r t

Dr. Gomis Programmation en Python 17


Programmation en Python 18
Les modules et les packages

Importation de modules
h e l p ( math ) # Aide p l u s dé t a i l l é e

h e l p ( math . sqrt ) # A i d e p l u s d é t a i l l é e

p r i n t ( math ) # Emplacement du f i c h i e r math . py

# U t i l i s a t i o n d ' une f o n c t i o n de math . py

i m p o r t math
racine = math . sqrt ( 2 5 )

from math i m p o r t sqrt


racine = sqrt ( 2 5 )
Dr. Gomis Programmation en Python 18
Programmation en Python 18
Les modules et les packages

Importation de modules
from math i m p o r t ∗
racine = sqrt ( 2 5 )

i m p o r t math as mat
racine = mat . sqrt ( 2 5 )

# La f o n c t i o n s q r t e s t da ns l e f i c h i e r
# math . py

Dr. Gomis Programmation en Python 18


Programmation en Python 19
Les modules et les packages

Importation d’un module contenu dans un package


Un package est un ensemble de modules

i m p o r t nomPackage . nomModule # I m p o r t e r un module

# I m p o r t e r une f o n c t i o n d ' un module

from nomPackage . nomModule i m p o r t nomFonction

# nomPackage . nomModule . nomFonction


Dr. Gomis Programmation en Python 19
Programmation en Python 20
Les modules et les packages

De bons modules pour la science


I Calcul scientifique

Dr. Gomis Programmation en Python 20


Programmation en Python 20
Les modules et les packages

De bons modules pour la science


I Calcul scientifique
I numpy

Dr. Gomis Programmation en Python 20


Programmation en Python 20
Les modules et les packages

De bons modules pour la science


I Calcul scientifique
I numpy
I matplotlib

Dr. Gomis Programmation en Python 20


Programmation en Python 20
Les modules et les packages

De bons modules pour la science


I Calcul scientifique
I numpy
I matplotlib
I scipy

Dr. Gomis Programmation en Python 20


Programmation en Python 20
Les modules et les packages

De bons modules pour la science


I Calcul scientifique
I numpy
I matplotlib
I scipy
I sympy

Dr. Gomis Programmation en Python 20


Programmation en Python 20
Les modules et les packages

De bons modules pour la science


I Calcul scientifique
I numpy
I matplotlib
I scipy
I sympy
I Traitement de données

Dr. Gomis Programmation en Python 20


Programmation en Python 20
Les modules et les packages

De bons modules pour la science


I Calcul scientifique
I numpy
I matplotlib
I scipy
I sympy
I Traitement de données
I pandas

Dr. Gomis Programmation en Python 20


Programmation en Python 20
Les modules et les packages

De bons modules pour la science


I Calcul scientifique
I numpy
I matplotlib
I scipy
I sympy
I Traitement de données
I pandas
I scikit-learn

Dr. Gomis Programmation en Python 20


Programmation en Python 20
Les modules et les packages

De bons modules pour la science


I Calcul scientifique
I numpy
I matplotlib
I scipy
I sympy
I Traitement de données
I pandas
I scikit-learn
I Web

Dr. Gomis Programmation en Python 20


Programmation en Python 20
Les modules et les packages

De bons modules pour la science


I Calcul scientifique
I numpy
I matplotlib
I scipy
I sympy
I Traitement de données
I pandas
I scikit-learn
I Web
I django

Dr. Gomis Programmation en Python 20


Programmation en Python 20
Les modules et les packages

De bons modules pour la science


I Calcul scientifique
I numpy
I matplotlib
I scipy
I sympy
I Traitement de données
I pandas
I scikit-learn
I Web
I django
I notebooks jupyter

Dr. Gomis Programmation en Python 20


Programmation en Python 21
Les modules et les packages

Les fractions
i m p o r t fractions as f

x = f . Fraction ( 1 , 4 )
y = f . Fraction ( 2 , 5 )

print (x + y) # 13/20

p r i n t ( type (x) )

p r i n t ( i s i n s t a n c e ( x , f . Fraction ) ) # True

p r i n t ( i s i n s t a n c e (x , i n t ) ) # False
Dr. Gomis Programmation en Python 21
Programmation en Python 22
Quelques fonctions intégrées

min ( ) # minimum
max ( ) # maximum
pow ( ) # puissance
abs ( ) # valeur absolue
oct () # o c t a l d ' un e n t i e r
bin () # b i n a i r e d ' un e n t i e r
hex ( ) # hexad é c i m a l d ' un e n t i e r

chr () # l e t t r e c o r r e s p o n d a n t au nombre

ord () # code u n i c o d e du c a r a c t è r e u n i c o d e

str () # c o n v e r t i t en cha î ne de c a r a c t è r e s

len () # Nombre de c a r a c t è r e s d ' une c h a i n e


Dr. Gomis Programmation en Python 22
Programmation en Python 23
Quelques fonctions intégrées

int () # c o n v e r t i t en e n t i e r

f l o a t () # c o n v e r t i t en r é e l

round ( ) # a r r o n d i t un nombre r é e l

divmod ( ) # q u o t i e n t e t r e s t e de l a d i v i s i o n

comp l ex ( ) # nombres c o m p l e x e s

repr () # r e t o u r n e une r e p r é s e n t a t i o n en s t r

e v a l ( ' exp ' ) # r é s u l t a t d ' une e x p r e s s i o n

bool () # r é s u l t a t d ' une e x p r e s s i o n b o o l é enne


Dr. Gomis Programmation en Python 23
Programmation en Python 24
Références

Dr. Gomis Programmation en Python 24


Programmation en Python 25
Références

Fin du chapitre

Merci de votre attention

Dr. Gomis Programmation en Python 25

Vous aimerez peut-être aussi