SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Cours-2-
La Programmation Modulaire
en Python
Professeur: ARROU ABDESSELAM
LYCÉE LISSANE EDDINE IBN AL-KHATIB
CENTRE CPGE –LAAYOUNE-
La programmation modulaire
Certains problèmes conduisent à des programmes longs, difficiles à écrire
et à comprendre. On les découpe en des parties appelées sous-programmes
ou modules.
Les fonctions et les procédures sont des modules (groupe d'instructions)
indépendants désignés par un nom. Elles ont plusieurs intérêts :
o Permettent de "factoriser" les programmes, càd de mettre en commun les
parties qui se répètent .
o permettent une structuration et une meilleure lisibilité des programmes .
o facilitent la maintenance du code (il suffit de modifier une seule fois).
o Ces procédures et fonctions peuvent éventuellement être réutilisées dans
d'autres programmes.
La programmation modulaire
Définition d'une fonction
Syntaxe :
L'appel d'une fonction :
def nom_fonction (par1,par2,…,parN) :
bloc d’instructions
…
return expression
variable=Nom_fonction(par1,par2,…paraN)
Définition d'une fonction
Exemple 1:
Écrire une fonction volume_sphere(R) qui rend le volume
d'une sphère on utilisant la fonction cube(r) qui rend le cube du
rayon R. Sachant que V= (4*pi*cube(r)) /3
Définition d'une fonction
Correction de l'exemple 1:
Définition d'une fonction
Exemple 2:
Écrire une fonction somme_carre(X,Y) qui rend la somme carré
de deux réels X et Y.
Définition d'une fonction
Correction de l'exemple 2:
Définition d'une procédure
Syntaxe :
L'appel d'une fonction/procédure sans valeur de retour :
def nom_fonction (par1,par2,…,parN) :
bloc d’instructions
…
Nom_fonction(par1,par2,…paraN)
Définition d'une procédure
Exemple 1:
Écrire une fonction division(X,Y) qui affiche le quotient et le
reste de division de deux nombres réels(X ,Y)passés en paramètres.
Définition d'une procédure
Correction de l'exemple 1:
Remarque
En python on peut utiliser les tuples pour renvoyer plusieurs
valeurs.
Exemple :
Exercices
1-Ecrire une fonction f(x) qui rend l'image de x selon la fonction
polynomiale: f (x):x7
+6x6
+15x4
+23x3
+x-9
2-Ecrire une fonction factorielle(N) qui prend en paramètre un entier positif
N, puis rend le factorielle de N .
N! = N * (N-1) *…* 3 * 2 * 1 (Par convention : 0 ! = 1)
3-Ecrire une fonction ordre(x,y,z) qui rend "Vrai" si les trois nombres passé
en paramètre sont rangés par ordre croissant, dans le cas contraire rend "Faux".
Les paramètres d'une fonction
Les paramètres servent à échanger des données entre le
programme principal et la fonction appelée.
Lors de l'appel d'une fonction, deux formes de paramètres
entrent en jeu : les paramètres formels et les paramètres effectifs.
Les paramètres d'une fonction
Les paramètres formels :
Les paramètres placés dans la déclaration d'une fonction sont appelés
paramètres formels. Ces paramètres peuvent prendre toutes les valeurs
possibles mais ils sont abstraits (n'existent pas réellement)
Les paramètres effectifs :
Les paramètres placés dans l'appel d'une fonction sont appelés
paramètres effectifs. Ils contiennent les valeurs pour effectuer le traitement.
Les paramètres d'une fonction
Exemple 1:
Ecrire une fonction maximum(N,M) qui prend en arguments
deux entiers N et M et qui rend la valeur maximale.
Les paramètres d'une fonction
Correction de l'exemple 1:
Paramètres formels
Paramètres formels
Les valeurs par défaut des paramètres
d'une fonction
Dans la définition d’une fonction, il est possible (et souvent
souhaitable) de définir une valeur par défaut pour chacun des
paramètres.
Les valeurs par défaut des paramètres
d'une fonction
Remarque :
 Vous pouvez définir une valeur par défaut pour tous les
paramètres de la fonction.
 Vous pouvez même définir une partie d’entre eux seulement.
Dans ce cas, cependant, les paramètres sans valeur par défaut
doivent précéder les autres dans la liste.
La portée des variables
Selon l’emplacement de déclaration, on peut avoir deux types
de variables dans une fonction: des variables locales ou des
variables globales.
La porté désigne le champs ou l'emplacement de définition et
la durée de vie .
La portée des variables
Variables locale:
Est une variable déclarée dans le corps d’une fonction . Elle n’est accessible
qu’à l’intérieur de la fonction dans laquelle elle a été déclarée.
Variables globale:
Est une variable définie en dehors d'une fonction. Elle est visible et
utilisable dans tout le programme (mais la fonction ne peut pas le modifier)
La portée des variables : variable locale
Exemple :
La portée des variables : variable globale
Exemple :
La portée des variables : variable globale
Exemple :
Le mot-clé global permet de modifier une variable globale à
l'intérieur d'une fonction.
Transmission(passage) des paramètres
Les échanges d'informations entre une fonction et le
programme principale se font par l'intermédiaire de paramètres.
Il existe deux principaux types de passages de paramètres qui
permettent des usages différents :
Le passage par valeur et le passage par référence(adresse).
Le passage par valeur
Dans ce type de passage, le paramètre formel reçoit
uniquement une copie de la valeur du paramètre effectif. La
valeur du paramètre effectifs ne sera jamais modifiée.
Les variables de type numériques et de type non
modifiables(chaîne (str),tuple) passent par valeur.
Le passage par valeur
Exemple :
Le passage par référence
Dans ce type de passage, la fonction utilise l'adresse du
paramètre effectif. Lorsqu'on utilise l'adresse du paramètre, on
accède directement à son contenu. La valeur de la variable
effective sera donc modifiée.
Les variables modifiables(liste,dictionnaire,ensembles)passent
par référence (adresse).
Le passage par référence
Exemple :
La fonction anonyme "lambda"
Python permet la création de fonctions anonymes (sans nom
et donc non définie par def) à l’aide du mot-clé lambda.
Une fonction anonyme ne peut pas avoir d’instruction return
et doit forcément retourner une expression.
Syntaxe :
Variable=lambda par1,par2,…,parN : Expression
La fonction anonyme "lambda"
Exemple :
Avec def Avec lambda
def som(a,b):
return (a+b)
som=lambda a,b:a+b
#appel de la fonction
som(a,b)
def carre(n):
return (n*2)
carre=lambda n:n*2
#appel de la fontion
caree(n)
def absolue(n):
if n<0:
n=n*(-1)
return n
abs=lambda n:n if n>=0 else -n
#appel de la fontion
abs(n)
Les fonctions récursives
Une fonction est dite récursive si elle s’appelle elle-même : on
parle alors d’appel récursif de la fonction.
Tout fonction récursif doit posséder un cas limite (cas trivial)
qui arrête la récursivité.
Exemple :
Les fonctions récursives
Correction de l'exemple :

Contenu connexe

Tendances

Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en pythonMariem ZAOUALI
 
Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonMariem ZAOUALI
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Ines Ouaz
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French CourseHaytam EL YOUSSFI
 
Formation python
Formation pythonFormation python
Formation pythonj_lipaz
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéeMissaoui Abdelbaki
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numériqueMariem ZAOUALI
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionECAM Brussels Engineering School
 
Algorithme & structures de données Chap I
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap IInes Ouaz
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonAbdoulaye Dieng
 
Travaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesTravaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesAnass41
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfsalah fenni
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielleECAM Brussels Engineering School
 
Cours algo: Les pointeurs
Cours algo: Les pointeursCours algo: Les pointeurs
Cours algo: Les pointeursSana REFAI
 

Tendances (20)

Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
 
Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en python
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
Formation python
Formation pythonFormation python
Formation python
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er année
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numérique
 
Fascicule tp programmation c
Fascicule tp programmation cFascicule tp programmation c
Fascicule tp programmation c
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exception
 
Algorithme & structures de données Chap I
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap I
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Travaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesTravaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de Données
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdf
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielle
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Cours algo: Les pointeurs
Cours algo: Les pointeursCours algo: Les pointeurs
Cours algo: Les pointeurs
 

Similaire à La programmation modulaire en Python

ALGORITHMIQUE fonction et procedure.pptx
ALGORITHMIQUE fonction et procedure.pptxALGORITHMIQUE fonction et procedure.pptx
ALGORITHMIQUE fonction et procedure.pptxHathat10
 
03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdfAhmed12314
 
Bases de php - Partie 3
Bases de php - Partie 3Bases de php - Partie 3
Bases de php - Partie 3Régis Lutter
 
01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdfMARYAM510573
 
Chapitre 4 Fonctions et procédures.pdf
Chapitre 4 Fonctions et procédures.pdfChapitre 4 Fonctions et procédures.pdf
Chapitre 4 Fonctions et procédures.pdfC00LiMoUn
 
Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Fahad Golra
 
Programmation en VBA Introduction au language Visual Basic for Applications ...
Programmation en VBA  Introduction au language Visual Basic for Applications ...Programmation en VBA  Introduction au language Visual Basic for Applications ...
Programmation en VBA Introduction au language Visual Basic for Applications ...Bassim ELKHATTABY
 
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#MSDEVMTL
 
Les fonctions.pptx
Les fonctions.pptxLes fonctions.pptx
Les fonctions.pptxsouadsadki2
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...Hamza SAID
 
02 Spécificité du C++ COURS SYS SYSSSSSS
02 Spécificité du C++  COURS SYS SYSSSSSS02 Spécificité du C++  COURS SYS SYSSSSSS
02 Spécificité du C++ COURS SYS SYSSSSSSAyoubElmrabet6
 
Généralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeGénéralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeInforMatica34
 
Introduction java
Introduction javaIntroduction java
Introduction javaFouad Root
 

Similaire à La programmation modulaire en Python (20)

POO en C++: Les fonctions
POO en C++: Les fonctionsPOO en C++: Les fonctions
POO en C++: Les fonctions
 
ALGORITHMIQUE fonction et procedure.pptx
ALGORITHMIQUE fonction et procedure.pptxALGORITHMIQUE fonction et procedure.pptx
ALGORITHMIQUE fonction et procedure.pptx
 
03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf
 
Python chapitre 4.pdf
Python chapitre 4.pdfPython chapitre 4.pdf
Python chapitre 4.pdf
 
Bases de php - Partie 3
Bases de php - Partie 3Bases de php - Partie 3
Bases de php - Partie 3
 
01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf
 
Algo inf102 2007
Algo inf102 2007Algo inf102 2007
Algo inf102 2007
 
Chapitre 4 Fonctions et procédures.pdf
Chapitre 4 Fonctions et procédures.pdfChapitre 4 Fonctions et procédures.pdf
Chapitre 4 Fonctions et procédures.pdf
 
Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Seance 3- Programmation en langage C
Seance 3- Programmation en langage C
 
Programmation en VBA Introduction au language Visual Basic for Applications ...
Programmation en VBA  Introduction au language Visual Basic for Applications ...Programmation en VBA  Introduction au language Visual Basic for Applications ...
Programmation en VBA Introduction au language Visual Basic for Applications ...
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
 
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
 
Theme 7
Theme 7Theme 7
Theme 7
 
Les fonctions.pptx
Les fonctions.pptxLes fonctions.pptx
Les fonctions.pptx
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...
 
02 Spécificité du C++ COURS SYS SYSSSSSS
02 Spécificité du C++  COURS SYS SYSSSSSS02 Spécificité du C++  COURS SYS SYSSSSSS
02 Spécificité du C++ COURS SYS SYSSSSSS
 
Généralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeGénéralités sur la notion d’Algorithme
Généralités sur la notion d’Algorithme
 
Apprentissage du java
Apprentissage du javaApprentissage du java
Apprentissage du java
 
Introduction java
Introduction javaIntroduction java
Introduction java
 

Dernier

Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesMohammedAmineHatoch
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesUnidad de Espiritualidad Eudista
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsJaouadMhirach
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdfMariaClaraAlves46
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxShinyaHilalYamanaka
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfGamal Mansour
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcourshalima98ahlmohamed
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Technologia Formation
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 

Dernier (20)

Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 

La programmation modulaire en Python

  • 1. Cours-2- La Programmation Modulaire en Python Professeur: ARROU ABDESSELAM LYCÉE LISSANE EDDINE IBN AL-KHATIB CENTRE CPGE –LAAYOUNE-
  • 2. La programmation modulaire Certains problèmes conduisent à des programmes longs, difficiles à écrire et à comprendre. On les découpe en des parties appelées sous-programmes ou modules. Les fonctions et les procédures sont des modules (groupe d'instructions) indépendants désignés par un nom. Elles ont plusieurs intérêts : o Permettent de "factoriser" les programmes, càd de mettre en commun les parties qui se répètent . o permettent une structuration et une meilleure lisibilité des programmes . o facilitent la maintenance du code (il suffit de modifier une seule fois). o Ces procédures et fonctions peuvent éventuellement être réutilisées dans d'autres programmes.
  • 4. Définition d'une fonction Syntaxe : L'appel d'une fonction : def nom_fonction (par1,par2,…,parN) : bloc d’instructions … return expression variable=Nom_fonction(par1,par2,…paraN)
  • 5. Définition d'une fonction Exemple 1: Écrire une fonction volume_sphere(R) qui rend le volume d'une sphère on utilisant la fonction cube(r) qui rend le cube du rayon R. Sachant que V= (4*pi*cube(r)) /3
  • 7. Définition d'une fonction Exemple 2: Écrire une fonction somme_carre(X,Y) qui rend la somme carré de deux réels X et Y.
  • 9. Définition d'une procédure Syntaxe : L'appel d'une fonction/procédure sans valeur de retour : def nom_fonction (par1,par2,…,parN) : bloc d’instructions … Nom_fonction(par1,par2,…paraN)
  • 10. Définition d'une procédure Exemple 1: Écrire une fonction division(X,Y) qui affiche le quotient et le reste de division de deux nombres réels(X ,Y)passés en paramètres.
  • 12. Remarque En python on peut utiliser les tuples pour renvoyer plusieurs valeurs. Exemple :
  • 13. Exercices 1-Ecrire une fonction f(x) qui rend l'image de x selon la fonction polynomiale: f (x):x7 +6x6 +15x4 +23x3 +x-9 2-Ecrire une fonction factorielle(N) qui prend en paramètre un entier positif N, puis rend le factorielle de N . N! = N * (N-1) *…* 3 * 2 * 1 (Par convention : 0 ! = 1) 3-Ecrire une fonction ordre(x,y,z) qui rend "Vrai" si les trois nombres passé en paramètre sont rangés par ordre croissant, dans le cas contraire rend "Faux".
  • 14. Les paramètres d'une fonction Les paramètres servent à échanger des données entre le programme principal et la fonction appelée. Lors de l'appel d'une fonction, deux formes de paramètres entrent en jeu : les paramètres formels et les paramètres effectifs.
  • 15. Les paramètres d'une fonction Les paramètres formels : Les paramètres placés dans la déclaration d'une fonction sont appelés paramètres formels. Ces paramètres peuvent prendre toutes les valeurs possibles mais ils sont abstraits (n'existent pas réellement) Les paramètres effectifs : Les paramètres placés dans l'appel d'une fonction sont appelés paramètres effectifs. Ils contiennent les valeurs pour effectuer le traitement.
  • 16. Les paramètres d'une fonction Exemple 1: Ecrire une fonction maximum(N,M) qui prend en arguments deux entiers N et M et qui rend la valeur maximale.
  • 17. Les paramètres d'une fonction Correction de l'exemple 1: Paramètres formels Paramètres formels
  • 18. Les valeurs par défaut des paramètres d'une fonction Dans la définition d’une fonction, il est possible (et souvent souhaitable) de définir une valeur par défaut pour chacun des paramètres.
  • 19. Les valeurs par défaut des paramètres d'une fonction Remarque :  Vous pouvez définir une valeur par défaut pour tous les paramètres de la fonction.  Vous pouvez même définir une partie d’entre eux seulement. Dans ce cas, cependant, les paramètres sans valeur par défaut doivent précéder les autres dans la liste.
  • 20. La portée des variables Selon l’emplacement de déclaration, on peut avoir deux types de variables dans une fonction: des variables locales ou des variables globales. La porté désigne le champs ou l'emplacement de définition et la durée de vie .
  • 21. La portée des variables Variables locale: Est une variable déclarée dans le corps d’une fonction . Elle n’est accessible qu’à l’intérieur de la fonction dans laquelle elle a été déclarée. Variables globale: Est une variable définie en dehors d'une fonction. Elle est visible et utilisable dans tout le programme (mais la fonction ne peut pas le modifier)
  • 22. La portée des variables : variable locale Exemple :
  • 23. La portée des variables : variable globale Exemple :
  • 24. La portée des variables : variable globale Exemple : Le mot-clé global permet de modifier une variable globale à l'intérieur d'une fonction.
  • 25. Transmission(passage) des paramètres Les échanges d'informations entre une fonction et le programme principale se font par l'intermédiaire de paramètres. Il existe deux principaux types de passages de paramètres qui permettent des usages différents : Le passage par valeur et le passage par référence(adresse).
  • 26. Le passage par valeur Dans ce type de passage, le paramètre formel reçoit uniquement une copie de la valeur du paramètre effectif. La valeur du paramètre effectifs ne sera jamais modifiée. Les variables de type numériques et de type non modifiables(chaîne (str),tuple) passent par valeur.
  • 27. Le passage par valeur Exemple :
  • 28. Le passage par référence Dans ce type de passage, la fonction utilise l'adresse du paramètre effectif. Lorsqu'on utilise l'adresse du paramètre, on accède directement à son contenu. La valeur de la variable effective sera donc modifiée. Les variables modifiables(liste,dictionnaire,ensembles)passent par référence (adresse).
  • 29. Le passage par référence Exemple :
  • 30. La fonction anonyme "lambda" Python permet la création de fonctions anonymes (sans nom et donc non définie par def) à l’aide du mot-clé lambda. Une fonction anonyme ne peut pas avoir d’instruction return et doit forcément retourner une expression. Syntaxe : Variable=lambda par1,par2,…,parN : Expression
  • 31. La fonction anonyme "lambda" Exemple : Avec def Avec lambda def som(a,b): return (a+b) som=lambda a,b:a+b #appel de la fonction som(a,b) def carre(n): return (n*2) carre=lambda n:n*2 #appel de la fontion caree(n) def absolue(n): if n<0: n=n*(-1) return n abs=lambda n:n if n>=0 else -n #appel de la fontion abs(n)
  • 32. Les fonctions récursives Une fonction est dite récursive si elle s’appelle elle-même : on parle alors d’appel récursif de la fonction. Tout fonction récursif doit posséder un cas limite (cas trivial) qui arrête la récursivité. Exemple :