SlideShare une entreprise Scribd logo
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

Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
Aziz Darouichi
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
Maya Medjdoub
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulation
ECAM Brussels Engineering School
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & Objet
Mouna Torjmen
 
Les listes en Python
Les listes en PythonLes listes en Python
Les listes en Python
ABDESSELAM ARROU
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
Olivier Le Goaër
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdf
salah fenni
 
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
Anass41
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
Abdoulaye Dieng
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
Mouna Torjmen
 
Fascicule tp programmation c
Fascicule tp programmation cFascicule tp programmation c
Fascicule tp programmation c
Missaoui Abdelbaki
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
Houda TOUKABRI
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
Lilia Sfaxi
 
Présentation python
Présentation pythonPrésentation python
Présentation python
Sarah
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
Abdoulaye Dieng
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMajid CHADAD
 
Les listes simplement chaînées en langage C
Les listes simplement chaînées en langage CLes listes simplement chaînées en langage C
Les listes simplement chaînées en langage C
Mohamed Lahby
 
Fonctions chaine
Fonctions chaineFonctions chaine
Fonctions chaineAfef Ilahi
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
Shellmates
 

Tendances (20)

Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulation
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & Objet
 
Les listes en Python
Les listes en PythonLes listes en Python
Les listes en Python
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdf
 
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
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
 
Fascicule tp programmation c
Fascicule tp programmation cFascicule tp programmation c
Fascicule tp programmation c
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
Présentation python
Présentation pythonPrésentation python
Présentation python
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
 
Les listes simplement chaînées en langage C
Les listes simplement chaînées en langage CLes listes simplement chaînées en langage C
Les listes simplement chaînées en langage C
 
Fonctions chaine
Fonctions chaineFonctions chaine
Fonctions chaine
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 

Similaire à La programmation modulaire en Python

POO en C++: Les fonctions
POO en C++: Les fonctionsPOO en C++: Les fonctions
POO en C++: Les fonctions
Amina HAMEURLAINE
 
ALGORITHMIQUE fonction et procedure.pptx
ALGORITHMIQUE fonction et procedure.pptxALGORITHMIQUE fonction et procedure.pptx
ALGORITHMIQUE fonction et procedure.pptx
Hathat10
 
03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf
Ahmed12314
 
Bases de php - Partie 3
Bases de php - Partie 3Bases de php - Partie 3
Bases de php - Partie 3
Ré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.pdf
MARYAM510573
 
Algo inf102 2007
Algo inf102 2007Algo inf102 2007
Algo inf102 2007
SergeCowouvi1
 
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
C00LiMoUn
 
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
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
HamdiBaklouti
 
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
 
cour informatique niveau3 programmation en Python.pdf
cour informatique niveau3 programmation en  Python.pdfcour informatique niveau3 programmation en  Python.pdf
cour informatique niveau3 programmation en Python.pdf
Nanchi6
 
Les fonctions.pptx
Les fonctions.pptxLes fonctions.pptx
Les fonctions.pptx
souadsadki2
 
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 SYSSSSSS
AyoubElmrabet6
 
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
InforMatica34
 
Introduction java
Introduction javaIntroduction java
Introduction java
Fouad 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#
 
cour informatique niveau3 programmation en Python.pdf
cour informatique niveau3 programmation en  Python.pdfcour informatique niveau3 programmation en  Python.pdf
cour informatique niveau3 programmation en Python.pdf
 
Theme 7
Theme 7Theme 7
Theme 7
 
Les fonctions.pptx
Les fonctions.pptxLes fonctions.pptx
Les fonctions.pptx
 
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

Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
MelDjobo
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
mrelmejri
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
Txaruka
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
IES Turina/Rodrigo/Itaca/Palomeras
 
Système de gestion des fichiers de amine
Système de gestion des fichiers de amineSystème de gestion des fichiers de amine
Système de gestion des fichiers de amine
sewawillis
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
cristionobedi
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
Moukagni Evrard
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Oscar Smith
 
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupeCours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Yuma91
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
WarlockeTamagafk
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Formation
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
Friends of African Village Libraries
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
Txaruka
 

Dernier (13)

Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
 
Système de gestion des fichiers de amine
Système de gestion des fichiers de amineSystème de gestion des fichiers de amine
Système de gestion des fichiers de amine
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
 
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupeCours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. 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 :