Vous êtes sur la page 1sur 150

Faculté des Sciences - Kénitra - Université Ibn Tofail

Initiation à la programmation avec Python


Par : Dr. Fatima Zahra Bassine

Master Energétique – Mécanique des fluides

1
▪ Les bases de programmation
Plan du cours
▪ Langage de programmation
▪ Types de langages
▪ La Compilation et L’interprétation
▪ Langage de programmation Python
▪ Principaux types de données
▪ Les opérateurs
▪ Notion de bloc d’instructions et d’indentation
▪ Les structures de données
2
Les bases de programmation

3
Les bases de programmation
Enoncé du Problème

Analyser

Algorithme
Traduction

Programme Erreur Syntaxique Erreur sémantique


Compilation Erreur

Exécutable
Exécution Erreur

Résultats 4
Algorithme
▪ L'algorithme est une suite d'actions
ordonnées sur un ensemble fini
d'objets.
▪ Doit être défini sans ambiguïté, et son
exécution doit être s'arrêter après un
nombre fini d'opération élémentaires.
▪ Un algorithme n’est pas exécutable il
doit être converti dans un langage de
programmation.
▪ Exemple :
Résolution de l'équation : ax2+bx+c.=0
Faire un algorithme pour trouver si il a des
racines, combien, et calculer leur valeur.
5
Programme
▪ Un programme est une suite
d’instructions permettant à un
système informatique d’exécuter
une tâche donnée écrit dans un
langage de programmation
compréhensible par un ordinateur
(langage machine).
▪ C’est une suite d’instructions
définies dans un langage donné et
qui décrit un algorithme.

6
Langage de programmation
Un langage est un ensemble de
mots clés (instructions ou
fonctions) et des règles de
syntaxe qui permettent d’écrire
un programme exécutable par
l’ordinateur.
Exemple :
C\C++, Java, PHP, Python, Scilab,
Matlab, …
7
Types de langages
On classe les langages de

programmation en générations : •
Java
Python
▪ 1ère génération : Langage machine • Ruby
• .Net
ou langage de bas-niveau (0 et 1). • C#

▪ 2ème génération : Langage …

assembleur
▪ 3ème génération : Langages • C
• C++
évolués ou langages de haut- • Objective C
•…
niveau
• Assembleur
8
Langage machine
▪ C’est une suite de bits (0 et 1) qui
est interprétée par le processeur
d’un ordinateur exécutant un
programme informatique.
▪ C'est le langage natif d'un
processeur, c'est-à-dire le seul
qu'il puisse traiter. Il est composé
d'instructions et de données à
traiter codées en binaire.

9
Langage assembleur
▪ Langage proche du langage
machine qui peut être
directement interprété par le
processeur de l’ordinateur tout
en restant lisible par un humain,
▪ Crée pour faciliter le travail des
programmeurs.
▪ Il consiste à représenter les
combinaisons de bits employées
en langage machine par des
▪ symboles alphanumériques. 10
Langage de haut-niveau
▪ Les langages de haut niveau sont plus
proches des langues naturelles, ce
qui facilite et vulgarise l'écriture des
programmes.

▪ Ils sont généralement indépendants


de la machine : le même programme
pourra être utilisé tel quel sur
plusieurs types d'ordinateurs.
11
La Compilation et L’interprétation
▪ Il est très difficile à l’utilisateur de programmer en langage
machine, c’est pourquoi des langages dis évolués ont été
créés (C, C++, Java, Python…).
▪ Un compilateur ou interpréteur est nécessaire pour
traduire un programme écrit en un langage évolué en
langage machine
Il existe deux techniques de traduction :
➢ La compilation
➢ L'interprétation
12
Langages interprétés
Dans ces langages, le code source (celui que vous écrivez) est interprété,
par un logiciel qu'on appelle interpréteur. Celui-ci va utiliser le code
source et les données d'entrée pour calculer les données de sortie :

L'interprétation du code source est


un processus « pas à pas » :
l'interpréteur va exécuter les lignes
du code une par une, en décidant à
chaque étape ce qu'il va faire
ensuite.

13
Langages compilés
Dans ces langages, le code source
(celui que vous écrivez) est tout
d'abord compilé, par un logiciel
qu'on appelle compilateur, en un code
binaire qu'un humain ne peut pas lire
mais qui est très facile à lire pour un
ordinateur. C'est alors directement le
système d'exploitation qui va utiliser
le code binaire et les données
d'entrée pour calculer les données
de sortie :
14
Interpréteur Vs Compilateur

15
Principales différences
On pourrait discuter très longtemps des avantages et
inconvénients des différents types de langages mais les deux
points qui sont les plus intéressants sont les suivants :
•Dans un langage interprété, le même code source pourra
marcher directement sur tout ordinateur. Avec un langage
compilé, il faudra (en général) tout recompiler à chaque fois ce
qui pose parfois des soucis.
•Dans un langage compilé, le programme est directement
exécuté sur l'ordinateur, donc il sera en général plus rapide
que le même programme dans un langage interprété.

16
Principales différences

Certains langages modernes tentent de combiner les deux techniques afin de garder le
meilleur de chacune.
Exemple : JAVA, PYTHON, LISP, … 17
Schéma de deux techniques

Code source Compilateur Byte Code Interpréteur Résultats

1. Le Compilateur Python Lit le code source

2. Produit un pseudo code intermédiaire

3. L’interpréteur Python lit le pseudo code

4. ….et le résultat apparait à l’écran

En informatique, le bytecode est un code intermédiaire entre les instructions


machines et le code source, qui n'est pas directement exécutable.
18
Langage de programmation Python

19
Pourquoi Python?
Un langage assez polyvalent. Il permet notamment d'adresser les types de
développements suivants :

▪ L'apprentissage de la programmation

▪ Le Scripting

▪ Le développement Web

▪ Le Big Data et le Machine Learning

▪ Programmation en Systèmes Embarqués


20
Historique du langage
Python est un langage de programmation, dont la
première version est sortie en 1991, Crée par Guido
Van Rossum, il a voyagé du Macintosh de son créateur,
qui travaillait à cette époque au Centrum Voor
Wiskunde en Informatica aux Pays-bas, jusqu'à se voir
associer une organisation à but non lucratif
particulièrement dévoué, la PYTHON SOFTWARE
FOUNDATION, créée en 2001. Ce langage a été baptisé
ainsi en hommage à la troupe de comiques les
"MONTY PYTHON Flying Circus".
21
Les principales caractéristiques
du langage Python
▪ Langage open source libre et gratuit
▪ Langage multiplateforme (Windows, Linux, MacOs)
▪ Langage interprété.
▪ Langage très facile à apprendre(évolutif)
▪ Syntaxe simple, claire et cohérente.
▪ Langage dynamique (pas déclaration, type peut
changer)
▪ Gestion automatique de la mémoire (Garbage
collector)
Bibliothèques très riches de modules (Math, Cmath,
Scipy, Numpy…) qui aident les développeurs à
22
travailler sur des projets particuliers.
Objectifs
Concrètement, voilà ce qu'on peut faire
avec Python : Des fonctionnalités offertes par Python et
▪ De petits programmes très simples, ses bibliothèques :
appelés scripts, chargé d'une ✓ Du calcul scientifique (numpy, scipy,
mission très précise sur votre matplotlib)
ordinateur. ✓ Du traitement du son, de la synthèse
▪ Des programmes complets, comme vocale
des jeux, des suites bureautiques, ✓ Du traitement d'image
des logiciels multimédias, des clients de ✓ Des interface graphique GUI (Tkinter,
messageries… PyQt, wxPython, PyGTK, …)
▪ Des projets très complexes, comme ✓ Des jeux vidéo en temps réel (Pygame)
des progiciels (ensembles de ✓ Des applications web (Django, Karrigell,
plusieurs logiciels pouvant fonctionner Pyjams, …)
ensemble, principalement dans le ✓ Interfacer des SGBD (MySQLdb, Sqlite)
monde professionnel). ✓ Des applications réseau (Twisted) 23
Installation de Python
Sur le site www.python.org, vous trouverez le Windows Installer, fichier de 14Mo
environ, c’est très peu. Installation par défaut

24
Installation de Python
Sur le site www.python.org, vous trouverez le Windows Installer, fichier de 14Mo
environ, c’est très peu. Installation par défaut

25
Installation de Python
Sur le site www.python.org, vous trouverez le Windows Installer, fichier de 14Mo
environ, c’est très peu. Installation par défaut

26
Installation de Python
Sur le site www.python.org, vous trouverez le Windows Installer, fichier de 14Mo
environ, c’est très peu. Installation par défaut

27
Installation de Python
Sur le site www.python.org, vous trouverez le Windows Installer, fichier de 14Mo
environ, c’est très peu. Installation par défaut

28
Installation de Python
Sur le site www.python.org, vous trouverez le Windows Installer, fichier de 14Mo
environ, c’est très peu. Installation par défaut

29
Interface Console/ Graphique
On peut distinguer deux grandes catégories de
programmes, en se fondant sur leur Interface avec
l’utilisateur, c’est-à-dire sur la manière dont se font
les échanges d’informations entre l’utilisateur et le
programme:
▪ Les programmes à interface console CLI
(Command Line Interface)
▪ Les programmes à interface graphique GUI
(Graphical User Interface)
30
Interface Console
Historiquement, ce sont les plus anciens. Dans de tels programmes, on fournit des
informations à l'écran sous forme de lignes de texte s'affichant séquentiellement, c'est-à-
dire les unes à la suite des autres.
Pour fournir des informations au programme, l'utilisateur frappe des caractères au clavier
(généralement un "écho" apparait à l'écran).

Entrent dans cette catégorie:


▪ Les programmes fonctionnant sur PC sous DOS ou, plus fréquemment, dans une
fenêtre DOS de Windows,
▪ Les programmes fonctionnant sous Unix ou Linux et s'exécutant dans une "Fenêtre de
commande".

Avec une interface console, c'est le programme qui décide de l'enchainement des
opérations l'utilisateur est sollicité au moment voulu pour fournir les informations
demandées. 31
Vérification

32
Premier Programme

33
L'environnement de développements
intégrés IDLE Shell (Python 3.10)
Un environnement de développement intégré (IDE), est un logiciel
regroupant un ensemble d’outils nécessaires au développement logiciel dans
un (ou plusieurs) langage(s) de programmation. L'outil IDE aide les
développeurs à concevoir et à documenter leurs codes comme un traitement
de texte aide à produire des documents écrits.

34
Pycharm
PyCharm dispose de la prise en charge intégrée des bibliothèques scientifiques.
Il prend en charge Pandas, Numpy, Matplotlib et d'autres
bibliothèques scientifiques, ce qui vous procure une intelligence de code
avancée, des graphiques, des visionneurs de tableaux et bien plus encore.

35
Pycharm
Installation Community
https://www.jetbrains.com/pycharm/download/#section=windows

36
Les types de données

37
Généralités
Principaux types de données
Python est un langage à typage dynamique, ce qui
signifie qu’il n’est pas nécessaire de déclarer les
variables avant de pouvoir leur affecter une valeur. La
valeur que l’on affecte possède un type qui dépend
de la nature des données (nombre entier, nombre à
virgule, chaîne de caractères, etc.). Le type du
contenu d’une variable peut donc changer si on
change sa valeur. 38
Test des Principaux types de données
▪ La fonction type()
Pour connaître le type d’une donnée ou le type de la valeur d’une
variable, il suffit d’utiliser la fonction type()

39
Principaux types de données
▪ La variable int (entier)
Ce type est utilisé pour stocker un entier, en anglais integer. Pour cette raison, on appelle int

▪ La variable float (flottant)


Ce type est utilisé pour stocker des nombres à virgule flottante, désignés en anglais par
l’expression ’floating point numbers’. Pour cette raison, on appelle ce type : float. En français, on
parle de flottant.

40
Principaux types de données
▪ La variable str (chaîne de caractères)
Sous Python, une donnée de type str est une suite quelconque de
caractères délimitée soit par des apostrophes (simple quotes), soit par
des guillemets (double quotes). str est l’abréviation de string, qui veut
dire chaîne en français.

41
Principaux types de données
Le type bool (booléen)
Le type bool est utilisé pour les booléens. Un booléen peut prendre les
valeurs True ou False.

Remarque : la fonction not est un opérateur logique qui renvoie l’opposé de


la valeur booléenne transmise.
42
Principaux types de données
Le type list (liste)
Sous Python, on peut définir une liste comme une collection d’éléments
séparés par des virgules, l’ensemble étant enfermé dans des crochets.
Exemple :
>>> jour = ["lundi", "mardi", "mercredi", 1800, 20.357, "jeudi", "vendredi"]

43
Principaux types de données
Le type Complex (complexe)
Python possède par défaut un type pour manipuler les nombres
complexes. La partie imaginaire est indiquée grâce à la lettre « j » ou « J ».
La lettre mathématique utilisée habituellement, le « i », n’est pas utilisée
en Python car la variable i est souvent utilisée dans les boucles.
Exemple : Nombre complexe - La partie imaginaire est suffixée par j.
>>> a = 2 + 3j

44
Principaux types de données
Remarques:
▪ Python est sensible à la casse (différence entre les majuscules et minuscules).
▪ Dans Python les variables n’ont pas besoin d’être déclarées à l’avance, mais toute
variable doit avoir une valeur avec le signe d'affectation =
▪ Le signe « # » signifie que c’est un Commentaire.

Exemple :

45
Les mots clés réservés à python

NB: vous ne pouvez pas utiliser comme noms de variables

46
Les opérateurs

47
Les opérateurs
Sont utilisés pour effectuer des opérations sur les variables et les
valeurs.

La liste suivante décrive les différents opérateurs utilisés en Python.


▪ Opérateurs arithmétiques
▪ Opérateurs d’affectation
▪ Opérateurs de comparaison
▪ Opérateurs logiques
▪ Opérateurs d’identité
▪ Opérateurs d’appartenance
▪ Opérateurs binaires

48
Les Opérateurs arithmétiques Python
Les opérateurs arithmétiques Python sont utilisés avec des valeurs
numériques pour effectuer des opérations arithmétiques courantes,
telles que l’addition, la soustraction, la multiplication, la division, etc.

49
Les Opérateurs d’affectation Python
Les opérateurs d’affectation Python sont utilisés avec des valeurs
numériques pour écrire une valeur dans une variable.

50
Les Opérateurs de comparaison Python
Les opérateurs de comparaison Python sont utilisés pour comparer deux
valeurs (nombre ou chaîne de caractères) :

51
Les Opérateurs logiques Python
Les opérateurs logiques Python sont utilisés pour combiner des
instructions conditionnelles.

52
Les Opérateurs logiques Python
Les opérateurs logiques Python sont utilisés pour combiner des
instructions conditionnelles.

53
Les Opérateurs d’identité Python
Les opérateurs d’identité sont utilisés pour comparer les objets, non pas
s’ils sont égaux, mais s’ils sont en fait le même objet, avec le même
emplacement mémoire:

54
Les Opérateurs d’appartenance Python
Les opérateurs d’appartenance sont utilisés pour tester si une séquence
est présentée dans un objet:

55
Les Opérateurs binaires en Python
Les opérateurs binaires en Python sont utilisés pour comparer les
nombres (binaires):

56
Priorités des opérations
▪ P pour parenthèses. Ce sont elles qui ont la plus haute priorité.
Elles vous permettent donc de forcer l'évaluation d'une expression dans l'ordre
que vous voulez.
Exemple: 2*(3-1) = 4, et (1+1) **(5-2) = 8.
▪ E pour exposants. Les exposants sont évalués avant les autres opérations.
Exemple: 2**1+1 = 3 (et non 4), et 3*1**10 = 3 (et non 59049 ).
▪ M et D pour multiplication et division, qui ont la même priorité.
Elles sont évaluées avant l'addition A et la soustraction S, donc effectuées en
dernier lieu.
Exemple: 2*3-1 = 5 (plutôt que 4).
Si deux opérateurs ont la même priorité, l'évaluation est effectuée de gauche à
droite.
PEMDAS pour les mémoriser ! 57
Les instructions de base

58
Les instructions de base
Affectation ou assignation
En Python comme dans de nombreux autres langages, l'opération
d'affectation est représentée par le signe égal =
Exemple:

59
Les instructions de base
L'instruction d'écriture print ()
Cette fonction affiche à l'écran un message, le contenu d'une variable ou
la valeur d’une expression.
Syntaxe : print (‘’Chaine de caractères à afficher’’)
Cette fonction réalise une conversion automatique préalable du contenu
de la variable en chaîne de caractères, car la fonction print () prend
toujours en argument une chaîne de caractères.

Exemple:

60
Les instructions de base
L'instruction de lecture input ()
La fonction input () permet de lire au clavier une valeur donnée par
l’utilisateur, et la retourné sous forme d’une chaine de caractères.
Syntaxe : input (‘’Chaine de caractères à saisir’’)
Exemple:

61
Les instructions de base
Conversion de type – Transtypage en Python
Le transtypage (ou cast) est la conversion d'une expression d'un certain
type en une expression d'un autre type.
Exemple:

62
Exercice d'application
Ecrire un programme qui demande le nom et l âge et moyenne
du licence d’un étudiant et afficher « Bonjour XXXXXXXXXXXXXX,
Vous avez XX ans et votre moyenne de licence est: XX.XX
Bienvenue à Université Ibn Tofail » en remplacement XXX par le
nom, l âge et la moyenne.

63
Les blocs d’instructions

64
Notion de bloc d’instructions et d’indentation
Python utilise l’indentation pour définir les
constructions de contrôle et de boucle. Cela
contribue à la lisibilité de Python.
Python utilise le symbole de deux points : et
en retrait pour montrer où des blocs de code
début et la fin.

65
Notion de bloc d’instructions et d’indentation
La structure conditionnelle if

if cond1 :
Bloc Instructions1
Si la condition cond1 est vraie le bloc d’instructions1 est exécuté, sinon on ne
fait rien.
if cond1 :
Bloc Instructions1
else:
Bloc Instructions2
Si la condition cond1 est vraie, le bloc d’instructions1 est exécutée sinon le
bloc d’instructions2 est exécutée. 66
Notion de bloc d’instructions et d’indentation
La structure conditionnelle if

if cond1 :
Bloc Instructions1
elif cond2 :
bloc d’instructions2
else :
bloc d’instructions2

L’utilisation de if… elif permet de spécifier plusieurs conditions.

67
Exercice d'application
Résolution de l'équation : ax2+bx+c.=0
Faire un algorithme pour trouver si il a des racines, et
calculer leur valeur.

➢ Utilisez la fonction sqrt() de la bibliothèque math pour


calculer la racine carré

68
69
Notion de bloc d’instructions et d’indentation
Les structures répétitives

La structure répétitive permet de répéter une instruction ou une


suite d'instructions tant qu’une condition est vraie.

Python propose deux structures de boucles :

▪ La boucle while : Permet de répéter l’exécution d’un bloc


d’instructions tant qu’une condition est vérifiée.

▪ La boucle for : par contre permet de répéter l’exécution d’un bloc


d’instructions un nombre déterminé de fois. La fonction range(n)
permet de générer une liste d'entier de 0 à n-1.
70
Notion de bloc d’instructions et d’indentation
La boucle while
La boucle while (tant que) permet d’exécuter un bloc d’instructions
de manière répétitive tant qu’une expression booléenne est vraie.

while condition :
Instruction1
Instruction2
…………………
InstructionN

71
Notion de bloc d’instructions et d’indentation
La boucle while
Remarques :
▪ La variable évaluée dans la condition doit exister au préalable (il
faut qu’on lui ait déjà affecté au moins une valeur).
▪ Si la condition est fausse au départ, le corps de la boucle n’est
jamais exécuté.
▪ Si la condition reste toujours vraie, alors le corps de la boucle
est répété indéfiniment. Il faut donc veiller à ce que le corps de
la boucle contienne au moins une instruction qui change la
valeur d’une variable intervenant dans la condition évaluée par
while, de manière à ce que cette condition puisse devenir
fausse et la boucle se terminer.
72
Notion de bloc d’instructions et d’indentation
La boucle while

Exemple :

73
Exercice d'application
Ecrire un Programme Python qui accepte que les nombre positifs
en utilisant la boucle « while »

74
Notion de bloc d’instructions et d’indentation
La boucle for
La boucle for permet de répéter l’exécution d’un bloc d’instructions
un nombre donné de fois.

for i in range (iMin, imax, pas) condition :


Instruction1
Instruction2
…………………
InstructionN

75
Notion de bloc d’instructions et d’indentation
La boucle for

Exemple :

La fonction range permet de créer une liste d’entiers successifs compris


dans une certaine borne dépendant du nombre de paramètres de
l’instruction. for i in range(début, fin, pas) :
76
Notion de bloc d’instructions et d’indentation
La fonction range
La fonction range permet de créer une liste d’entiers successifs compris
dans une certaine borne dépendant du nombre de paramètres de
l’instruction. for i in range(début, fin, pas) :

77
Exercice d'application
Ecrire un Programme Python permettant d’afficher la table de
multiplication d’un entier saisi par l’utilisateur.

78
Notion de bloc d’instructions et d’indentation
Les instruction break, continue et pass

En utilisant les boucles for et les while en Python, vous pouvez


automatiser et répéter efficacement des tâches.
Cependant, il arrive parfois qu’un facteur externe vienne influencer
la façon dont votre programme fonctionne.
vous voudrez que votre programme quitte complètement une
boucle, saute une partie d’une boucle avant de continuer, ou
ignorer ce facteur externe. Pour cela, vous pouvez utiliser les
instructions break, continue et pass.

79
Notion de bloc d’instructions et d’indentation
Instruction break
▪ Sous Python, l’instruction break vous donne la possibilité de quitter
une boucle au moment où une condition externe est déclenchée.
▪ L'instruction break provoque une sortie brutale de la boucle, mais le
programme continue son exécution après la boucle.

80
Notion de bloc d’instructions et d’indentation
Instruction continue
▪ L'instruction continue permet de passer directement à l'itération
suivante en sautant les instructions qui la suivent(continue).

81
Notion de bloc d’instructions et d’indentation
Instruction pass
▪ Au déclenchement d’une condition externe « if »,
l’instruction pass vous permet de gérer la condition sans toucher à la
boucle.

82
Les structures de données

83
Les structures de données
▪ Il est possible de "stocker" plusieurs grandeurs
dans une même structure;

▪ Ce type de structure est appelé une séquence. De


façon plus précise, nous définirons une séquence
comme un ensemble fini et ordonné d'éléments
indicés de 0 à n-1 (si cette séquence comporte n
éléments);

▪ Python comprend deux types de structures : les


listes et les tuples.
84
Les listes en Python
Une liste est une structure de données intégrée à Python qui
contient une collection d'objets.
▪ Les éléments de la liste sont placés entre crochets [ ] les
éléments étant séparés par des ,
Syntaxe liste [élément1, élément2, élément3]
▪ Les listes sont ordonnées, ca permet d'utiliser un index
pour accéder à n'importe quel élément.
▪ Les listes sont modifiables, ajouter ou supprimer des
éléments après la création d'une liste.
▪ Les éléments peuvent être de types de données différents :
chaînes de caractères, des entiers et des objets dans la
même liste. 85
Tuples en Python
▪ Un tuple est une structure de données séquentielle
▪ Un tuple contient, dans un ordre précis, un nombre
quelconque de valeurs quelconques.
▪ Il permet de créer une collection ordonnée de plusieurs
éléments.
▪ En Python, on écrit les tuples en plaçant leurs éléments entre
deux parenthèses ( ), les éléments étant séparés par des ,.
Syntaxe Tuple (élément1, élément2, élément3)

▪ Les tuples ressemblent aux listes, mais on ne peut pas les


modifier une fois qu’ils ont été créés.
▪ On dit qu’un tuple n’est pas mutable 86
Les structures de données

87
Les structures de données
▪ Les tuples permettent la transmission
conteneur
sécurisée d’informations
▪ Un tuple est moins lourd qu’une liste
Mutable Non mutable

Listes Tuples

88
Les structures de données
Manipulation des listes

89
Les structures de données
Manipulation des listes Syntaxe python
Récupérer la longueur d’une liste len(liste)
Supprimer un élément del(liste[élément ])
Ajouter un élément a la liste liste.append(élément)
Insérer un élément liste.insert(rang,élémen
t)
Supprimer un élément liste.remove(élément)
Supprimer un élément d’un rang liste.pop(rang)
Récupérer le rang(l’index) d’un l'élément liste.index(élément)
Inverser l’ordre des éléments de la liste Liste.reverse() 90
Exercice d’application

1.Ecrire un algorithme Python


permettant d’inverser la liste des
éléments de la liste:
L = ["Python", "Java", "C ++", "Javascript"]
2.Supprimer l'élément Java
3.Ajouter a la liste l’élément MatLab
4.Ajouter a la liste l’élément Ruby
5.Insérer au rang 3 l’élément Golang

91
Les fonctions

92
Les fonctions
Principe et généralités

▪ En programmation, les fonctions sont très utiles pour


réaliser plusieurs fois la même opération au sein d'un
programme. Elles rendent également le code plus lisible
et plus clair en le fractionnant en blocs logiques.
▪ Par exemple math.sqrt(variable) du module math
renvoie la racine carré de la variable, aussi des fonctions
internes à Python comme range() ou len().
▪ une fonction est une sorte de « boîte noire »
93
Les fonctions
Notion de boite noire
▪ À laquelle vous passez aucune, une
ou plusieurs variable(s) entre
parenthèses. Ces variables sont
appelées arguments. Il peut s'agir
de n'importe quel type d'objet
Python.
▪ Qui effectue une action.
▪ Et qui renvoie un objet Python ou Figure 1. Fonctionnement
schématique d'une fonction.
rien du tout (procédure).
94
Les fonctions et les procédures
Définitions

▪Fonction: Bloc d’instructions nommé et paramétrées


réalisant une certaine tâche. Elle admet zéro, un ou
plusieurs paramètres et renvoie toujours un résultat
▪Procédure: bloc d’instructions nommé et
paramétrées réalisant une certaine tâche. Elle admet
zéro, un ou plusieurs paramètres mais ne retourne
pas de valeur
95
Les fonctions et les procédures
Pourquoi des fonctions ?
▪Réutiliser un bloc d’instructions,
▪Regroupement de blocs de code souvent répétés,
▪Réutilisable dans différents programmes,
▪Découper un problème en sous-tâches,
▪Code plus facile à tester,
➢ Programme plus simple à comprendre, une fonction
étant identifiée pour réaliser une tâche particulière.

96
Les fonctions
Exemple de fonction

▪ Par exemple, si vous appelez la fonction len() de la manière


suivante :

➢ vous appelez len() en lui passant une liste en argument (ici la liste
[0, 1, 2]) ;
➢ la fonction calcule la longueur de cette liste ;
➢ elle vous renvoie un entier égal à cette longueur.
97
Les fonctions
Il est possible avec Python de définir une fonction qui
ressemble à une fonction mathématique ; la syntaxe est alors la
suivante :

Déclaration d’une fonction

def ma_fonction (arg1,arg2,…argN) :


return resultat
98
Les fonctions
def ma_fonction (arguments) :
return resultat

▪ Notez que la syntaxe de def utilise les deux-


points « : » comme les boucles for et while ainsi
que les tests if, un bloc d’instructions est donc
attendu.
▪ l'indentation « : » de ce bloc d'instructions est
obligatoire.
99
Les fonctions et les procédures
Syntaxe de déclaration

Déclaration d’une fonction def nomDeLafonction (arguments):


return resultat

Déclaration d’une procédure Def nomDeLaProcedure(arguments):


bloc d'instructions ...

100
Les fonctions et les procédures
Exemple de fonction:

Exemple de procédure:

101
Les fonctions
les particularités des fonctions en Python

1. Pas nécessaire préciser le type des arguments


➢ Python est un langage au « typage dynamique », c'est-à-dire
qu'il reconnaît le type des variables au moment de l'exécution.
Par exemple :

102
Les fonctions
les particularités des fonctions en Python

1. Renvoi de résultats
Un autre avantage en Python est que les fonctions sont capables
de renvoyer plusieurs objets à la fois, comme dans cette fraction
de code :

103
Exercice d'application
Implémenter en Python les fonctions mathématiques suivantes :
o aire: r → πr2
o f: x→ e-x
o dB: g → 20log(g)

Utilisez la bibliothèque math:


Import math ou from math import*
Et Tester ces fonctions :
aire(16) : 804.247719318987
f(54) : 3.532628572200807e-24
dB(21) : 26.444385894678387

104
Exercice d'application
Créer une fonction qui permet de calculer la racine carré des nombre
saisies au clavier

105
Exercice d'application
Créer une fonction qui permet de calculer la factorielle d’un nombre
saisie au clavier

106
Exercice d'application
Créer une fonction f qui prend x comme argument et renvoie y
➢ y est calculé a partir de la fonction suivante:
f(x)= 4x3 - 13x2 + x - 60

107
Exercice d'application
Créer une fonction appelée carre_cube_quad qui prend x comme argument
et renvoie une liste de trois résultats: X2, X3 ,X4, afficher la fonction pour x=3,
ensuite affecté aux éléments de la liste les variables z1, z2, z3 et afficher les
résultats comme suit: carré= 9 cube= 27 quad= 81

108
Les fonctions
Variables locales, variables globales

▪ Une variable globale peut


être atteinte n’importe où
dans le code,
▪ Une variable locale
uniquement à l’intérieur
d’un bloc de code.
La variable globale (A) peut être atteinte et modifiée n’importe où
dans le code, la variable locale (B) n’existe que dans le bloc 3.
109
Variables locales , variables globales
Exemples

110
Les fonctions
Utilisation d’une variable globale - global
Pour rendre une variable globale en Python il suffit d'utiliser le mot clef
global devant le nom d'une variable globale utilisée localement afin
d'indiquer à Python qu'on souhaite bien modifier le contenu de la variable
globale et non pas créer une variable locale de même nom.

111
Les fonctions
Les modules : Importer des fonctions d'autres fichiers
▪ Un module permet de regrouper
les fonctions, classes et codes
associés en général,
▪ Organiser votre code en modules
lorsque le code devient soit large
ou lorsque vous souhaitez
réutiliser certains éléments de la
base de code dans plusieurs
projets.
▪ Une bibliothèque de code, 112
Les fonctions
Les modules : Importer des fonctions d'autres fichiers

▪ comment utiliser une même fonction dans plusieurs


programmes différents ?

import Nom_Module
Ou From Nom_Module import *
Ou From Nom_Module import ma_Fonction

Ou From Nom_Module import F1, F2, … , Fn


113
Les fonctions
Importer des fonctions d'autres fichiers
Exemple
créer un fichier (.py) nommé créer un nouveau fichier (.py) et
puissance.py qui va définir des Importer les fonctions à partir du
fonctions (on a définit les module afin d’utiliser dans un
fonctions carre() et cube() ). Un tel programme principal les
fichier est appelé un module fonctions qui ont été définies
dans le module

114
Les fonctions
Importer des fonctions d'autres fichiers
Exemple
créer un nouveau fichier (.py) et
créer un fichier (.py) nommé Importer les fonctions à partir du
puissance.py qui va définir des module afin d’utiliser dans un
fonctions (on a définit les programme principal les
fonctions carre() et cube() ). Un tel fonctions qui ont été définies
fichier est appelé un module dans le module

115
Les fonctions
Importer des fonctions d'autres fichiers
Exemple
créer un fichier (.py) nommé créer un nouveau fichier (.py) et
puissance.py qui va définir des Importer les fonctions à partir du
fonctions (on a définit les module afin d’utiliser dans un
fonctions carre() et cube() ). Un tel programme principal les
fichier est appelé un module fonctions qui ont été définies
dans le module

116
Les fonctions
Importer des fonctions d'autres fichiers
Exemple
créer un fichier (.py) nommé créer un nouveau fichier (.py) et
puissance.py qui va définir des Importer les fonctions à partir du
fonctions (on a définit les module afin d’utiliser dans un
fonctions carre() et cube() ). Un tel programme principal les
fichier est appelé un module fonctions qui ont été définies
dans le module

117
Les fonctions
Les paquets:

Python permet aux développeurs


d'organiser les modules ensemble
dans des packages, dans une
structure hiérarchique basée sur des
répertoires. Un package est défini
comme :
Un répertoire contenant un ou
plusieurs fichiers source Python.

118
Les fonctions
Les paquets (package ):

▪ Un paquet est tout simplement un ensemble de plusieurs


modules regroupés entre eux. On va pouvoir importer des
paquets de la même façon que des modules et accéder à un
module ou à un élément en particulier en utilisant la syntaxe:
import package1.module1
from package1.module1 Import fonction1

119
Exercice
3
1. Écrire une fonction cube qui retourne le cube de son argument. f(X)= 𝑋
2. Écrire une fonction Volume_Sphère qui calcule le volume d’une sphère de rayon R
fourni en argument et qui utilise la fonction cube.
3. Tester la fonction Volume_Sphère par un appel dans le programme principal.
➢ Le volume de l’espace délimité par une sphère est (4𝜋 × 𝑅 3 )/3

120
Exercice
Écrire un programme qui permet d’effectuer des calculs sur les notes de 5
étudiants, le programme doit contenir deux fichiers:
1. Un module stats contenant la définition les fonctions suivantes: Somme ,
Moyenne , variance, écart-type et coefficient de variation.
2. Un fichier principal main qui:
Demande a l utilisateur de saisir les 3 notes,
Appel les fonctions
Affiche les résultats

• La formule de la variance est


VAR= Σ (x-M)² / n-1.
Avec x la note de l’étudiant • La formule Du coeff de variation:
M =la moyenne E
CV= × 100
n= la totale des notes (n=5) 𝑀

• La formule de l’écart type


E = 𝑉𝐴𝑅. 121
Exercice

122
Exercice

123
Programmation orientée objet
POO & Héritage

124
Programmation orientée objet
Définitions

▪ La programmation orientée objet (POO) permet de créer des


entités (objets) que l'on peut manipuler .
▪ La POO impose des structures solides et claires. Les objets
peuvent interagir entre eux, cela facilite grandement la
compréhension du code et sa maintenance.
▪ La notion de classe va en quelque sorte nous permettre de
généraliser la notion de « type » afin de créer de nouvelles
structures de données.
125
Programmation orientée objet
Les classes(exemple)

• Une classe définit des attributs et des méthodes.


Par exemple, imaginons une classe Voiture qui
servira à créer des objets qui sont des voitures.
Cette classe va pouvoir définir un attribut couleur,
un attribut vitesse, etc. Ces attributs
correspondent à des propriétés qui peuvent
exister pour une voiture.
• La classe Voiture pourra également définir une
méthode rouler(). Une méthode correspond en
quelque sorte à une action, ici l’action de rouler
peut être réalisée pour une voiture.
126
Programmation orientée objet
Création d’une classe

Class Nom_de_la_classe :
'description de la classe (Optionelle)’
Code ...
▪ Pour définir une classe, utilisez le mot-clé class, suivi du nom de
la classe et un signe deux-points ( : ).
▪ La première ligne du corps de classe est une chaîne qui décrit
brièvement de cette classe (pas obligatoire).
▪ Dans le corps de classe, vous pouvez déclarer des attributs, des
méthodes et des constructeurs.
127
Programmation orientée objet
Les classes
Une classe regroupe des fonctions et des attributs qui définissent un
objet. On appelle par ailleurs les fonctions d'une classe des « Attributs »
et « méthodes ».
▪ Attribut :
L'attribut est un membre de la classe. Par exemple, le rectangle comporte
deux attributs dont la largeur et la hauteur .
▪ Méthode :
•La méthode de la classe est similaire à une fonction normale, mais elle
est une fonction de la classe, pour l'utiliser, vous devez appeler à travers
l'objet.
•Le premier paramètre de la méthode est toujours self (un mot-clé qui fait
référence à la classe elle-même). 128
Programmation orientée objet
Les classes
Constructeur:
Le constructeur est une méthode spéciale de classe, elle est toujours
nommé __init__
•Le premier paramètre du constructeur est toujours self (un mot-clé se
réfère à la classe elle-même).
•Le constructeur est utilisé pour créer un objet.
•Le constructeur attribue des valeurs du paramètre aux propriétés de
l'objet qui sera créé.
•Vous ne pouvez définir qu'un plus constructeur en classe.
•Si la classe n'est pas définie par le constructeur, par
défaut Python considère qu'il a un constructeur par défaut __init __ (self),
avec le corps vide, il hérite le constructeur de la classe parente. 129
Programmation orientée objet
▪ Exemples
#L’objet dont la référence est dans p possède
deux attributs : x et y.

La méthode __init__() est appelée lors de la création d'un objet.


self.nom est une manière de stocker une information dans la classe. On
parle d'attribut de classe.
Dans le deuxième exemple, on stock le nom dans l'attribut nom . 130
Programmation orientée objet
▪ Exercice d’application
Définir la classe Point dont :
- Les attributs sont : les coordonnées x et y
- Les méthodes : Distance qui renvoie la distance entre deux points
- et Milieu qui retourne le point Milieu entre deux points
Distance AB= 𝑋𝑏 − 𝑋𝑎 2 + (𝑌𝑏 − 𝑌𝑎)2
Milieu A+B/2

131
Les bibliothèques

132
Notion bibliothèque
Exemple: La bibliothèque math
Pour disposer des fonctions mathématiques usuelles, la librairie
d’origine du python se nomme math.
1. On peut alors importer juste les fonctions nécessaires par: from
math import cos, log, sqrt
2. Ou l’ensemble des fonctions en général par: from math Import *
Dans ce cas on utilisera les fonctions de la manière suivante:
>>>cos(3)
-0.989992496604454
2. Ou juste Ou import math
Dans ce cas on utilisera les fonctions de la manière suivante:
>>>math.cos(3)
-0.989992496604454 133
Notion bibliothèque
Exemple: La bibliothèque math
▪ Une fois un module est importé on peut lister l’ensemble des fonctions
disponible grâce a la fonction dir()
>>>import math
>>>Print(dir(math))

▪ Pour accéder à l’aide on utilise la fonction help()


help(math.log) pour obtenir de l’aide sur la fonction log de la bibliothèque math
134
Notion bibliothèque
Dans Python, une bibliothèque est un ensemble logiciel
de modules , fonctions, constantes, …) ajoutant des possibilités étendues à
Python : calcul numérique, graphisme, programmation internet ou réseau,
génération de documents, …

Importation de modules
▪ Il existe de nombreuses fonctions qu'on peut utiliser avec Python mais
pour éviter de saturer à la fois la mémoire et les noms de fonctions
utilisables, on a regroupé dans ce qu'on appelle des modules, les
fonctions qui ont une utilité spécifique ( Programmation scientifique).
▪ Pour les utiliser il faut donc demander à Python de les mettre en
mémoire pour pouvoir les utiliser. Pour cela, il faut mettre en début
de programme les modules qu'on importe. 135
Notion bibliothèque
Il en existe un très grand nombre, et c’est d’ailleurs une des grandes forces de
Python. La plupart est regroupée dans le stockage centralisé et organisé dans
des paquets logiciels de Python appelé PyPi (Python Package Index).

Installation d’une bibliothèque


▪ Avec pip : pip est un utilitaire, fourni avec Python et qui permet
d'installer simplement les bibliothèques déposées sur PyPi.
▪ Pour l'utiliser, il faut lancer une fenêtre de commande (ou terminal)
▪ Pour installer une bibliothèque, il suffit donc de taper dans la fenêtre
de commande : pip install nom_de_la_bibliothèque
✓ S'il n'y a pas de message en rouge, c'est que tout s'est bien passé.
136
Installation d’une bibliothèque

137
Installation d’une bibliothèque

138
Installation d’une bibliothèque

NB: L’opération d’installation peut prendre du temps;


139
A la fin de l’installation le message « Nom du package »< installed succesfuly > s’affiche
La programmation scientifique
L’un des atouts phares de la programmation en Python, la
richesse des librairies disponibles:
▪ Numpy: calculs numériques, gestion des tableaux de
données , calculs mathématiques complexes.
▪ Scipy: opérations de manipulation / traitement de
données numériques classiques, (algébre linéaire,
statistiques, etc.).
▪ Matplotlib: tracer des graphiques et visualiser des
données.
▪ Pandas: Simplifier les manipulations de donnée,
fusionner les données, lire simplement des données
sous différents formats : fichiers CSV et texte, Microsoft
Excel, bases de données SQL.
▪ Scikit Learn: data science et les algorithmes
d’apprentissage automatique (Machine Learning).
▪ Seaborn: visualisation de données, spécialisée dans
l’analyse statistique
▪ Keras: implémenter des modèles complexes de Deep
learning. 140
Numpy
NumPy (Numerical Python) est une bibliothèque de
python qui comporte des fonctions permettant de
manipuler des matrices ou tableaux multidimensionnels.
Le module Numpy apporte des:
▪ Fonctions de calculs numériques autour des tableaux
multidimensionnels « array » (exemples: vecteurs ,
matrice)
▪ Fonctions de calculs mathématiques de haut niveau
(algèbre linéaire, statistique, ajustement polynomial
d'une courbe ...).
▪ Utilisé dans presque tous les projets de calcul
numérique sous python.
Pour utiliser Numpy, il faut rajouter la ligne suivante en
début de fichier :
141
Numpy
NumPy est adapté pour les problématiques qui requièrent
l’usage des matrices ou des tableaux multidimensionnels,
comme la Data Science, l’ingénierie, les mathématiques ou
encore les simulations.
Le module Numpy permet de:
▪ générer des tableaux particuliers : np.arange, np.ones,
np.linspace, etc.
▪ faire des opérations à partir des valeurs du tableau :
np.sum, np.sin, np.histogram, etc.
▪ exprimer des conditions (booléennes) sur les éléments
d’un tableau ou extraire des parties d’un tableau :
np.logical_not, np.in1d
▪ changer l’agencement des valeurs d’un tableau, sa
forme, ou encore créer un nouveau tableau à partir de
plusieurs autres : np.reshape, np.concatenate. etc. 142
Matplotlip
▪ Permet de faire le tracé de courbes scientifiques
(Génération des courbes 2D et 3D),
▪ Ce package très complet contient différents
modules, notamment les modules pylab et pyplot,
▪ pylab associe les fonctions de pyplot (pour les
tracés) avec les fonctionnalité du module numpy
pour obtenir un environnement très proche de celui
de MATLAB/Octave, très répandu en calcul
scientifique.
▪ Sortie de qualité dans divers formats(PNG? PDF?
SVG…)
▪ Interface graphique interactive pour explorer les
figures.

143
Matplotlib
On peut importer le module:
1. Soit par l’instruction 2. Soit par l’instruction
from matplotlib.pylab import * (qui importe aussi le import matplotlib.pyplot as plt
module numpy sans alias) ; Dans ce cas on pourra
utiliser les commande “à la MATLAB”

Exemple: Exemple:

144
Exemple d’utilisation de Numpy et matplotlib
#Pour utiliser Numpy et
matplotlib il faut toujours
commencer par les importer

#Pour créer un tableau(Vecteurs,


matrices…) il suffit de passer une liste
de nombres en argument de np.array().

#Visualiser les données

145
Scipy
▪ SciPy est un projet visant à unifier et fédérer un ensemble
de bibliothèques Python à usage scientifique.
▪ Scipy utilise les tableaux et matrices du module Numpy.
▪ Cette distribution de modules est destinée à être utilisée
avec le langage interprété Python afin de créer un
environnement de travail scientifique très similaire à celui
offert par Scilab, GNU Octave, Matlab.
▪ Il contient par exemple des modules pour l'optimisation,
l'algèbre linéaire, les statistiques, le traitement du signal ou
encore le traitement d'images.
▪ Il offre également des possibilités avancées de
visualisation grâce au module matplotlib.
▪ Le projet suit la même philosophie que le langage Python à
savoir clarté du code, facilité d'apprentissage et
extensibilité. 146
Exercice d’application
Le but de cet exercice est d’écrire un programme python qui permet de calculer
l’altitude Z et de la vitesse V d’une goutte d’eau en fonction du temps, afin
d’obtenir le graphique des différentes énergies en fonction du temps.
Enoncé:
On s’intéresse à une goutte d’eau de masse m= 5,2×10−7 kg. à la quelle on
associe une vitesse v0 = 55,6 m. 𝑠 −1
−2
▪ intensité du champ de pesanteur terrestre : g = 9,81 m. 𝑠 .
▪ La norme de la force de frottement, supposée constante, qui s’applique sur la
goutte est notée f: f = 1,24 *m.
1- tracer le graphique des différentes énergies Ec Ep Em en fonction du temps.
Expressions de la vitesse et de l'altitude: Expressions de energies:
V= -(g+f/m) × t + V0 Ec= 1/2 m 𝑽2
Z= -1/2 × (g+f/m) × 𝒕𝟐 +V0 × t Ep= mgZ
Em= Ep+Ec
147
Correction

148
Exercice d’application
Le but de cet exercice est d’écrire un programme python qui permet de calculer la
transformeé de fourier (FFT)

149
Exemple (FFT)

150

Vous aimerez peut-être aussi