Vous êtes sur la page 1sur 19

3ÉME ANNÉE FINANCE MATIÈRE: COMPÉTENCES DIGITALES

CHAPITRE 5: LES SOUS PROGRAMMES


ENSEIGNANTE: IMEN OUESLATI

Cours élaboré par:


• Imen Oueslati
• Maha El Arbi
• Sofien Boutaib
1

ANNEE UNIVERSITAIRE 2021/2022


PLAN
PLAN
• Les sous-programmes
• Les Fonctions
• Les Procédures
• Différence entre Fonction et Procédure
• Appels des Fonctions
• Plus loin avec les Fonctions

2
LES SOUS-PROGRAMMES (1/2)
• Exemple
Séquence d’instructions pour afficher la mention d’un étudiant:

Imaginez qu’on a plusieurs instructions pour effectuer un traitement (ex: 100 lignes ou plus). Comment
ça devient la lecture du code?
 On peut regrouper ces instructions dans un sous-programme qu’on lui donnera un nom (par exemple:
Afficher_mention()).

But des sous-programmes:


 Meilleure organisation du programme (regrouper les tâches par blocs : lisibilité → maintenance)
 Eviter la redondance (pas de copier/coller → maintenance, meilleure réutilisation du code) 3
LES SOUS-PROGRAMMES (2/2)
• Sous-programme = suite nommée d’instructions, que l’on peut appeler chaque fois que nécessaire.
• La structure d’un sous programme est la suivante:

• Il existe deux types de sous-programmes:


 la fonction : suite d’instructions effectuant un calcul. Le résultat du calcul est retourné ou
renvoyé par l’instruction : return nom_Variable ou expression

• Exemple de fonction:

 la procédure : suite d’instructions pour effectuer une tâche. Il n’y a pas l’instruction return
donc pas de résultat retourné.
• Exemple de procédure:

On parlera toujours de fonction. Si elle ne retourne pas de valeur (pas d’instruction return) ça sera une procédure. 4
LES FONCTIONS (1/2)
• Fonction → Bloc d’instructions
• Prend (éventuellement) des paramètres en entrée (non typés)
• Renvoie une ou plusieurs valeurs en sortie.

5
LES FONCTIONS (2/2)
• Ce qu’il faut savoir

• Concernant le nom de la fonction, on n’a pas le droit aux espaces:

• La commande return stoppe l’exécution de la fonction. Toutes les lignes de codes qui suivent avec
l’indentation ne seront pas lues.

6
LES PROCÉDURES
• Une procédure est un bloc d’instructions nommé et paramétré, réalisant une certaine tâche. Elle
admet aucun, un ou plusieurs paramètres et ne renvoie pas de résultat en fin d’exécution.
• Par exemple, c’est une tâche à exécuter mais ne renvoie aucune valeur.
• Syntaxe:

 La procédure est similaire à la fonction en terme de syntaxe mais:


 Ne contient pas l’instruction return, elle ne retourne pas de valeur.

• Exemple:

7
DIFFÉRENCE ENTRE FONCTION ET PROCÉDURE
(PRINT OU RETURN) (1/4)

• Au premier abord, ces deux programmes semblent donner la même chose:

• Cependant….

 En effet, avec « print », ce qui est affiché n’est pas considéré comme une valeur par Python, contrairement à
« return ». 8
DIFFÉRENCE ENTRE FONCTION ET PROCÉDURE
(PRINT OU RETURN) (2/4)
Pour résumer…
• Si on a besoin d’un output dans un sous-programme pour le traiter dans le programme, il faut utiliser « return »,
mais si ce n’est pas le cas, on peut aussi utiliser « print » ou rien utiliser (on codifie juste les instructions voulue).

Pour aller plus loin, on peut demander à Python le type de ce qui est affiché:

9
DIFFÉRENCE ENTRE FONCTION ET PROCÉDURE
(PRINT OU RETURN) (3/4)

• Que va afficher la fonction dans chaque cas?

10
DIFFÉRENCE ENTRE FONCTION ET PROCÉDURE
(PRINT OU RETURN) (4/4)

• Que va afficher la fonction dans chaque cas?

11
APPEL DES FONCTIONS (1/2)

• L’appel d’une fonction dans le programme se fait de la manière suivante:

Définition de la fonction

Programme principale

Remarque:
L’appel de la fonction peut se faire dans le programme principal ou dans
une autre fonction. 12
APPEL DES FONCTIONS (2/2)

• Les appels des fonctions peuvent être faites dans le code avec deux manières différentes:

Passer les paramètres selon les positions


1- Passage de paramètres par position attendues.
La fonction renvoie → 10

Aucune confusion possible → 10


2- Passage par nom. Le mode de
passage que je préconise, d’autant
plus que les paramètres ne sont pas Aucune confusion possible → 10
typés.

Sans instructions spécifiques, le passage par


En revanche… position prévaut
La fonction renvoie → 10

13
PLUS LOIN AVEC LES FONCTIONS: VALEUR PAR DÉFAUT

• Dans une fonction, il est possible d’avoir des paramètres par défaut.

• Affecter des valeurs aux paramètres dès la définition de la fonction


Paramètres par • Si l’utilisateur omet le paramètre lors de l’appel, cette valeur est utilisée
défaut
• Si l’utilisateur spécifie une valeur, c’est bien cette dernière qui est utilisée
• Les paramètres avec valeur par défaut doivent être regroupées en dernière position dans la liste des
paramètres

Exemple

La valeur utilisée est epsilon = 0.1 dans ce cas 14


PLUS LOIN AVEC LES FONCTIONS: PASSAGE DE PARAMÈTRES

• Les paramètres sont toujours


passés par référence (référence
à l’objet), mais ils sont
modifiables selon qu’ils sont
mutables (dictionnaire, liste,
etc.) ou non mutables (types
simples, tuples, etc.).

• Ce qui est pointé par la référence


qui est modifiable, pas la
référence elle-même. Ex. b = [6]
ne sera pas répercuté à
l’extérieur de la fonction.

15
PLUS LOIN AVEC LES FONCTIONS: FONCTION RENVOYANT
PLUSIEURS VALEURS (1/2)
Renvoyer plusieurs valeurs avec return
• return peut renvoyer plusieurs valeurs simultanément. La récupération passe par une affectation multiple.

• Remarque : Que se passe-t-il si nous ne


mettons qu’une variable dans la partie
gauche de l’affectation ?

16
PLUS LOIN AVEC LES FONCTIONS: FONCTION RENVOYANT
PLUSIEURS VALEURS (2/2)
Renvoyer plusieurs valeurs avec return via des listes et des dictionnaires
• Nous pouvons aussi passer par une structure intermédiaire telle que la liste ou le dictionnaire d’objets. Les objets
peuvent être de type différent, au final l’outil est très souple.

 Les deux fonctions renvoient deux objets différents.


17
PLUS LOIN AVEC LES FONCTIONS: VISIBILITÉ (PORTÉE) DES
VARIABLES
Variables locales et globales
• Les variables définies localement dans les fonctions sont uniquement visibles dans ces fonctions.
• Les variables définies (dans la mémoire globale) en dehors de la fonction ne sont pas accessibles dans la fonction.
Elles ne le sont uniquement que si on utilise un mot clé spécifique

• x est une variable locale, • On va utiliser la variable globale x.


pas de répercussion L’instruction suivante équivaut à:
18
x = 10 + 99
PLUS LOIN AVEC LES FONCTIONS: IMBRICATION DES FONCTIONS

Fonctions locales et globales


• Il est possible de définir une fonction dans une autre fonction. Dans ce cas, elle est locale à la fonction, elle n’est pas
visible à l’extérieur.

 La fonction interne() est imbriquée dans externe,


elle n’est pas exploitable dans le programme
principal ou dans les autres fonctions.

19

Vous aimerez peut-être aussi