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 [Link], 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 [Link], 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 [Link], 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 [Link], 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 [Link], 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 [Link], 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
[Link]
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: [Link]
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