0% ont trouvé ce document utile (0 vote)
8 vues11 pages

Chapitre5 Python

Le document présente un cours sur les fonctions en Python, abordant leur définition, syntaxe, types et utilisation. Il explique les fonctions prédéfinies, les fonctions lambda, ainsi que les fonctions définies par l'utilisateur avec ou sans paramètres. Enfin, il traite des variables locales et globales, ainsi que de leur portée et modification dans le contexte des fonctions.

Transféré par

wejyosri18
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues11 pages

Chapitre5 Python

Le document présente un cours sur les fonctions en Python, abordant leur définition, syntaxe, types et utilisation. Il explique les fonctions prédéfinies, les fonctions lambda, ainsi que les fonctions définies par l'utilisateur avec ou sans paramètres. Enfin, il traite des variables locales et globales, ainsi que de leur portée et modification dans le contexte des fonctions.

Transféré par

wejyosri18
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Institut Supérieur d’Informatique et de

Multimédia de Gabès (ISIMG)

Chapitre 5 : Les fonctions en Python

Année universitaire : 2024-2025

Plan

I. Introduction
II. Notions de base sur les fonctions en Python
II.1. Syntaxe
II.2. Types de fonctions
III. Les types de variables

1
I. Introduction

En programmation, une fonction est un ensemble


d’instructions que l’on peut appeler avec un nom et qui
réalise une tâche précise. Elle peut utiliser à l’entrée (ou non)
un ou plusieurs paramètres, appelés arguments, pour fournir
(ou non) un ou plusieurs résultat(s).
Une fonction qui ne fournit pas une valeur de retour est
appelée procédure.
Les fonctions permettent de mieux structurer le code et de le
rendre plus lisible en le fractionnant en blocs.
Les fonctions sont utilisées pour réaliser une même opération
plusieurs fois dans un programme.

II. Notions de base sur les fonctions en Python

II.1. Syntaxe
En Python, une fonction est définie comme suit :

def nom_fonction(liste_de_paramètres):
bloc d’instructions
return résultat(s)_renvoyé(s)
La première ligne est appelée entête.
Le mot clé def est une abréviation du mot define. Il annonce qu’on va
écrire une fonction.
Le nom de la fonction doit respecter certaines règles : Il doit commencer
par une lettre (de préférence minuscule) ou un tiret bas, ne contenir que
des caractères alphanumériques (les lettres accentuées et les caractères
spéciaux ne sont pas autorisés) et être différent des mots réservés en
Python.

2
II. Notions de base sur les fonctions en Python

La liste de paramètres représente les arguments utilisés dans la


fonction. On les écrit séparés par des virgules. Si aucun argument n’est
nécessaire, les parenthèses restent vides.
Il est obligatoire de mettre deux points à la fin de l’entête.
Le bloc d’instructions doit être indenté.
le mot clé return permet de retourner le(s) résultat(s) (le contenu
d’une ou de plusieurs variables). Il faut noter qu’une fonction ne
renvoie pas obligatoirement de valeur (exemple : fonction d’affichage).
Remarque : En Python, le mot fonction désigne à la fois les vraies
fonctions (qui renvoient un résultat) et les procédures.

II. Notions de base sur les fonctions en Python

Exemple de définition et d’appel d’une fonction

Mode Shell Mode script (somme.py)


>>>def somme (x,y): #définition de la fonction somme
z=x+y def somme(x,y):
return z z=x+y
>>> somme(5,10) return z
15 #programme principal
x=int(input('saisir un entier : '))
y=int(input('saisir un entier : '))
print(somme(x,y)) #affichage du résultat de la fonction

3
II. Notions de base sur les fonctions en Python

II.2. Types de fonctions

Fonctions en
Python

Fonctions
Fonctions Fonction
définies par
prédéfinies lambda
l’utilisateur

Fonctions sans Fonctions avec


arguments arguments

Fonctions avec Fonctions sans Fonctions avec Fonctions sans


valeur(s) de valeur de valeur(s) de valeur de
retour retour retour retour
7

II. Notions de base sur les fonctions en Python

Les fonctions prédéfinies en Python : Ce sont les fonctions


déjà définies en Python, qui sont toujours disponibles et qui
sont fréquemment utilisées. Elles proviennent de deux
sources :
Les fonctions qui sont internes à Python (exemple : input(), print(),
len(), etc.).
Les fonctions qui sont écrites par autres programmeurs et qui sont
accessibles en important le module qui les contient (exemple : la
fonction factorial du module math). L’importation d’un module peut
être réalisée selon l’une des trois méthodes suivantes :

4
II. Notions de base sur les fonctions en Python
Importation du module Appel d’une fonction du Exemple
module
import nom_module nom_module.nom_fonction(liste >>>import math
_paramètres) >>>x=math.sqrt(25)
>>>print(x)
5.0
from nom_module import nom_fonction(liste_paramètres) >>>from math import sqrt
fonction1, fonction2,… >>>print(math.sqrt(25))
5.0
>>>print(factorial(5))
Traceback (most recent call last):
File "<pyshell#4>", line 1, in
<module>
print(factorial(5))
NameError: name 'factorial' is not
defined

from nom_module import * nom_fonction(liste_paramètres) >>>from math import *


>>>print(sqrt(25))
5.0

II. Notions de base sur les fonctions en Python

La fonction lambda : C’est une fonction sans nom (anonyme)


qui contient n’importe quel nombre d’arguments et une
expression unique en une seule ligne. Elle est utilisée pour
effectuer une seule tâche. Elle est souvent utile pour appeler
une fonction dans une autre.
Syntaxe : Une fonction lambda s’écrit sous la forme suivante :
lambda liste_de_pramètres: expression
Exemple
Fonction lambda Fonction régulière
>>>(lambda x:x*x)(5) >>>def puissance (x):
25 return x*x
>>>f=lambda x:x*x >>>puissance(7)
>>>f(4) 49
16
10

5
II. Notions de base sur les fonctions en Python

Les fonctions définies par l’utilisateur (fonctions sans


paramètres) (1/3)
Ce sont des fonctions sans entrée et qui peuvent retourner un résultat
ou non.
Exemple (fonction sans résultat)
Définition d’une Appel de la fonction Explication
fonction d’affichage
>>>def affichage(): >>>affichage() L’affichage obtenu à
for i in range (2): 0 partir de la fonction
print(i) 1 définie n’est pas
>>>a=affichage() considéré comme un
0 résultat. En effet, le type
1 de retour de la variable a
>>>a #pas d’affichage est 'None' qui signifie
>>>type(a) l’absence d’une valeur de
<class 'NoneType'> retour.
11

II. Notions de base sur les fonctions en Python

Les fonctions définies par l’utilisateur (fonctions sans


paramètres) (2/3)
Exemple (fonction avec un seul résultat)

Définition d’une fonction de saisie Appel de la fonction Explication

>>>def saisie(): >>>saisie() Le résultat de la fonction


x=int(input('saisir un entier : ')) saisir un entier : 5 (l’entier saisi) est stocké
return x 5 dans la variable a. Le
>>>a=saisie() type de la variable a
saisir un entier : 7 correspond au type du
>>>a résultat renvoyé par la
7 fonction (type entier).
>>>type(a)
<class 'int'>

12

6
II. Notions de base sur les fonctions en Python

Les fonctions définies par l’utilisateur (fonctions sans


paramètres) (3/3)
Exemple (fonction avec plusieurs résultats)

Définition d’une fonction de saisie Appel de la Explication


fonction
>>>def saisie1(): >>>L=saisie1() Cette fonction permet de
L=[] saisir un entier : 5 saisir et de retourner
for i in range (3): saisir un entier : 7 trois variables qui sont
x=int(input('saisir un entier : ')) saisir un entier : 8 stockées comme des
L.append(x) >>>L éléments dans une liste.
return L [5,7,8] La fonction renvoie un
>>>type(L) résultat de type list.
<class 'list'>

13

II. Notions de base sur les fonctions en Python

Les fonctions définies par l’utilisateur (fonctions avec


paramètres) (1/4)
Ce sont des fonctions avec une (ou plusieurs) entrée(s) et qui peuvent
retourner un résultat ou non.
En Python, on n’a pas besoin de préciser le type des paramètres
utilisés dans une fonction.
Exemple (fonction sans résultat)
Définition d’une Appel de la fonction Explication
fonction somme
>>>def somme(x,y): >>>somme(5,7) L’opérateur + peut être
z=x+y 12 utilisé avec plusieurs types
print(z) >>>somme(8,1.4) de variables (somme des
9.4 nombres entiers et/ou
>>>somme('bon', 'jour') réels, complexes,
'bonjour' concaténation des chaines
de caractères, etc.)
14

7
II. Notions de base sur les fonctions en Python

Les fonctions définies par l’utilisateur (fonctions avec


paramètres) (2/4)
Exemple (fonction avec résultat)
Définition d’une fonction de saisie Appel de la Explication
fonction
>>>def saisie1(n): >>>l=saisie1(3) Cette fonction permet de
L=[] saisir un entier : 5 saisir et de retourner n
for i in range (n): saisir un entier : 7 variables qui sont
x=int(input('saisir un entier : ')) saisir un entier : 8 stockées comme des
L.append(x) >>>l éléments dans une liste.
return L [5,7,8] La fonction renvoie un
>>>type(l) résultat de type list.
<class 'list'>

15

II. Notions de base sur les fonctions en Python

Les fonctions définies par l’utilisateur (fonctions avec


paramètres) (3/4)
En Python, le nombre de paramètres d’une fonction peut être variable
ou fixe. Il existe deux méthodes différentes pour créer une fonction
avec un nombre d’arguments variable :
Définir des valeurs de paramètres par défaut : Dans ce cas, on attribue des valeurs
par défaut aux paramètres. Si aucune valeur de l’un des paramètres n’est passée
lors de l’appel de la fonction, la valeur par défaut sera utilisée. Il faut mettre les
paramètres obligatoires suivis par les paramètres par défaut.
Utiliser une syntaxe spécifique pour passer un nombre arbitraire de paramètres :
Lors de la définition d’une fonction, l’utilisation de la syntaxe *args permet
d’indiquer que le nombre de paramètres de cette fonction est variable.

16

8
II. Notions de base sur les fonctions en Python

Les fonctions définies par l’utilisateur (fonctions avec


paramètres) (4/4)
Exemples (fonctions avec un nombre de paramètres variable)
Définition d’une Appel de la Explication
fonction fonction
Fonction >>>def produit(x,y=10): >>>produit(5) Dans le premier appel de la fonction,
avec z=x*y 50 la valeur par défaut de y a été utilisée
paramètres return z >>>produit(7,8) vu qu’on a passé une valeur pour un
par défaut 56 seul paramètre. Dans le deuxième
appel de la fonction, la valeur par
défaut n’était pas utilisée vu qu’on a
passé une valeur pour chaque
paramètre.
Fonction >>>def somme(*args): >>>somme(4,5) Dans le premier appel de la fonction,
avec un s=0 9 le nombre de paramètres était deux.
nombre for i in (args): >>>somme(7,8,2) Dans le deuxième appel de la fonction,
d’arguments s+=i 17 on a passé trois arguments.
arbitraire return(s)

17

III. Les types de variables

En Python, il existe deux types de variables :


Les variables locales : Ce sont des variables créées à l’intérieur d’une
fonction. Elles ne sont pas visibles qu’à l’intérieur de la fonction.
Les variables globales : Ce sont les variables créées dans le programme
principal. Elles sont visibles partout dans le programme. Elles sont également
accessibles par toutes les fonctions du programme. Les variables déclarées à
l’extérieur des fonctions sont en général globales.
Exemple
Définition d’une Appel de la fonction Explication
fonction
>>> x=10 >>> produit(4) La variable x est globale. Sa
>>> def produit(a): 40 valeur a été utilisée dans la
y=x*a >>> y fonction.
return y Traceback (most recent call last): La variable y est locale à la
File "<pyshell#17>", line 1, in <module> fonction. Elle n’est pas
y accessible dans le
NameError: name 'y' is not defined programme principal.
18

9
III. Les types de variables

Priorité des variables locales et globales


Dans un programme, on peut avoir des variables locales et globales
qui ont le même nom avec des valeurs différentes. Lors de l’appel
d’une variable, Python cherche d’abord les variables locales puis
globales.
Exemple
Définition d’une Appel de la Explication
fonction fonction
>>> x=10 >>> produit(7) Lors du calcul du produit,
>>> def produit(a): 35 la valeur de la variable
x=5 locale x a été utilisée et
y=x*a non pas celle de la variable
return y globale.

19

III. Les types de variables

Modification des variables globales


Cas des variables de types non mutables : La valeur d’une variable
globale ne peut pas être modifiée à l’intérieur d’une fonction. Pour
apporter une modification à une variable dans un contexte local, on
doit utiliser le mot clé global suivi du nom de la variable à l’intérieur
de la fonction.
Cas des variables de types mutables : La valeur d’une variable globale
peut être modifiée à l’intérieur d’une fonction sans recours à
l’utilisation du mot clé global.

20

10
III. Les types de variables

Exemples (variables globales de types non mutables)


Définition d’une Appel de la fonction Explication
fonction
>>>def concat(y): >>>x='bon' La variable x dans la fonction est une
x=x*y >>>concat(2) variable locale qui a été référencée
return x Traceback (most recent call last): avant d’en affecter une valeur
File "<pyshell#39>", line 1, in utiliser le mot clé global pour indiquer
<module> à la fonction qu’il s’agit d’une variable
concat(2) globale. Dans ce cas, on peut accéder
File "<pyshell#37>", line 2, in concat à la variable globale x dans la fonction
x=x*y concat.
UnboundLocalError: local variable 'x'
referenced before assignment

>>>def concat(y): >>>x,y='bon',1 La valeur de la variable globale x a été


global x >>> concat(y) modifiée à l’intérieur de la fonction
y=2 'bonbon' grâce à l’utilisation du mot clé global.
x=x*y >>> x La valeur de la variable globale y n’a
return x 'bonbon' pas été modifiée car la variable y à
>>> y l’intérieur de la fonction a une portée
1 locale. 21

III. Les types de variables

Exemple (variables globales de types mutables)


Définition d’une fonction Appel de la fonction Explication

>>>def modifier(x): >>>L=[2,3,4] La liste L est une variable globale


for i in range(len(L)): >>>modifier(2) qui a été modifiée à l’intérieur
L[i]+=x [4, 5, 6] de la fonction, sans utilisation du
print(L) mot clé global, vu qu’elle est
une variable de type mutable.

22

11

Vous aimerez peut-être aussi