Université Abdelmalek Essaadi كلعاعا كلـعلا دبع ةعـمممماج
Faculté des Sciences de Tétouan نالكت كلايلا ةيلج
Département de Physique
Licence Fondamentale
Sciences de la Matière Physique (SMP)
Algorithmes et programmation Python
Chapitre 1
Généralités sur le langage python
Année Universitaire : 2024/2025 Prof. O. Zealouk
Généralités
I. Introduction
La programmation, en informatique, est le processus de création d'un ensemble d'instructions ou de
lignes de code qui indiquent à un ordinateur comment effectuer une tâche spécifique. Ces
instructions sont écrites dans un langage de programmation compréhensible par l'ordinateur.
• Exécuter des opérations
• Résoudre des problèmes
• Traiter des données
• Accomplir diverses actions
La programmation suit un ensemble d'étapes prédéfinies, transformant des idées en solutions
numériques.
2
Généralités
II. Importance de la programmation dans le monde moderne
• Création d'applications : Les jeux vidéo, les applications de messagerie et les outils de travail
sont tous créés grâce à la programmation.
• Automatisation : La programmation permet d'automatiser des tâches répétitives, ce qui nous fait
gagner du temps et de l'efficacité.
• Analyse des données : Dans des domaines comme la santé ou les finances, la programmation
aide à analyser des grandes quantités de données pour prendre de meilleures décisions.
• Innovation : Les nouvelles technologies, comme l'intelligence artificielle ou la robotique,
reposent sur la programmation pour fonctionner.
3
Généralités
III. Langages de Programmation vs. Langage Machine : Fondamentaux et Différences
1. Langages de programmation
Un langage de programmation est un ensemble de règles et de syntaxe qui permet aux développeurs
d'écrire des instructions que l'ordinateur peut comprendre. Il est plus proche du langage humain, ce
qui le rend plus facile à utiliser pour programmer. Des exemples incluent Python, Java, C++, et
JavaScript. Ces langages offrent des abstractions qui simplifient la création de logiciels complexes.
• Un langage de programmation permet de traduire des idées en instructions logiques, facilitant
ainsi la communication entre l'humain et la machine.
• Les langages évoluent constamment, intégrant de nouvelles fonctionnalités pour répondre aux
besoins croissants des développeurs et des technologies modernes
4
Généralités
1. Langages de programmation
Les programmes informatiques peuvent être conçus pour fonctionner soit en mode console, soit en
mode graphique, en fonction des besoins et des objectifs du projet. Voici une explication des
différences entre les deux :
Programmes en mode console Programmes en mode graphique
5
Généralités
1. Langages de programmation
Programmes en mode console :
• Interface utilisateur textuelle : Les programmes en mode console communiquent avec
l'utilisateur à travers une interface texte. Ils affichent généralement du texte dans une
fenêtre de terminal ou de console.
• Interactions textuelles : Les interactions avec l'utilisateur se font généralement en
entrant du texte au clavier et en lisant des réponses textuelles à l'écran
6
Généralités
1. Langages de programmation
Programmes en mode console :
• Simplicité et efficacité : Les programmes en mode console sont souvent plus simples à
développer, car ils se concentrent sur des tâches de traitement de données et
d'automatisation. Ils sont également plus légers en termes de ressources système, ce qui
les rend efficaces pour les opérations en arrière-plan et les tâches automatisées.
• Exemples : Les utilitaires en ligne de commande, les scripts, les programmes de
traitement de données en masse et les serveurs sans interface graphique sont souvent
des exemples de programmes en mode console.
7
Généralités
1. Langages de programmation
Programmes en mode graphique :
• Interface utilisateur graphique (GUI) : Les programmes en mode graphique utilisent des
éléments visuels, tels que des fenêtres, des boutons, des menus, des icônes, etc., pour
permettre à l'utilisateur d'interagir avec le logiciel
• Interactions visuelles : Les interactions avec l'utilisateur se font en cliquant sur des
éléments de l'interface graphique, en faisant glisser des éléments, en saisissant des
données dans des champs de texte, etc.
8
Généralités
1. Langages de programmation
Programmes en mode graphique :
• Convivialité : Les programmes en mode graphique sont généralement plus conviviaux
et intuitifs pour les utilisateurs, car ils offrent une expérience visuelle plus riche et des
interactions plus naturelles.
• Exemples : Les logiciels de traitement de texte, les navigateurs web, les jeux vidéo, les
applications de bureau, les applications mobiles et la plupart des applications destinées
aux utilisateurs finaux sont des exemples de programmes en mode graphique
9
Généralités
1. Langages de programmation
Il est important de noter que certains programmes combinent à la fois des interfaces en mode
console et en mode graphique.
Des système d'exploitation
offrent à la fois une interface graphique conviviale et la possibilité d'exécuter des commandes
en mode console pour des opérations plus avancées.
10
Généralités
1. Langages de programmation
Le choix entre un mode console et un mode graphique dépend:
Besoins de l'application Fonctionnalités requises et type de tâches à accomplir
Expérience utilisateur Niveau de confort et de familiarité avec les interfaces
Ressources disponibles Capacités matérielles et performances du système
Flexibilité du projet Possibilitéd’offrir les deux options pour répondre aux
besoins variés.
11
Généralités
1. Langages de programmation
Quelques exemples de langages de programmation :
Domaines d'application : Développement web, science des données, apprentissage automatique
(machine learning), automatisation de tâches, intelligence artificielle, traitement du langage naturel,
développement de jeux (via des bibliothèques comme Pygame).
Domaines d'application : Développement web (côté client), création d'interfaces utilisateur
interactives, développement de jeux (via des bibliothèques comme Phaser), développement
d'applications mobiles (via des cadres comme React Native).
12
Généralités
1. Langages de programmation
Domaines d'application : Domaines d'application : Développement Android, applications
d'entreprise, développement web (via Java EE), développement de jeux (via JavaFX).
Domaines d'application : Développement de jeux, développement de logiciels système, applications
haute performance, développement d'applications graphiques.
Domaines d'application : Développement de jeux, développement de logiciels système, applications
haute performance, développement d'applications graphiques.
13
Généralités
1. Langages de programmation
Domaines d'application : Développement web côté serveur, Création de sites web dynamiques,
Systèmes de gestion de contenu (CMS)
Domaines d'application : Analyse de données, Recherche en statistiques, visualisation de données,
science des données.
Domaines d'application : Développement web (Ruby on Rails), Prototypage rapide , Applications
de script
14
Généralités
1. Langages de programmation
Chaque langage de programmation possède ses propres caractéristiques, avantages et inconvénients,
ce qui le rend plus adapté à certaines tâches ou domaines d'application. Par exemple, des langages
comme Python sont souvent privilégiés pour leur syntaxe claire et leur vaste bibliothèque, ce qui les
rend idéaux pour la science des données et l'apprentissage automatique. En revanche, C++ est
souvent choisi pour des applications nécessitant des performances optimales, comme les jeux vidéo
ou les systèmes embarqués, grâce à son contrôle bas niveau.
Le choix d'un langage dépend généralement des
besoins spécifiques du projet
15
Généralités
2. Langage machine
Le langage machine, en revanche, est le langage binaire que l'ordinateur comprend directement. Il
est constitué de séquences de 0 et de 1, correspondant aux instructions que le processeur exécute.
Chaque type de processeur a son propre ensemble d'instructions en langage machine, ce qui signifie
que le code écrit pour un type de processeur ne fonctionnera pas nécessairement sur un autre.
16
Généralités
2. Langage machine
L’ordinateur ne connait que le langage binaire;
• Par exemple : Si on traduit " Faites le calcul 9 + 5 en langue, ça pourrait être quelque
chose comme suit : 0010110110010011010011110
Schémas de réalisation d’un programme
17
Généralités
2. Langage machine
§ Comment l’ordinateur peut-il comprendre uniquement le langage binaire avec des 0 et des 1?
Le binaire fonctionne en représentant des informations à l'aide de combinaisons de "0" et "1",
mais pour que cela ait du sens pour nous, il faut un système de codage commun.
Le code ASCII attribue une valeur numérique à chaque caractère :
AàZ
La première version de la table ASCII, connue sous le nom d'American
Standard Code for Information Interchange (Code Américain Normalisé
0à9 pour l’Échange d’Information), a été créée en 1960 pour répondre à un
besoin spécifique
( !_ &
18
Généralités
2. Langage machine
Grâce à un index universel, nous pouvons communiquer efficacement avec les ordinateurs, chaque
caractère ayant une séquence binaire correspondante. Bien que l'ordinateur ne comprenne que le
binaire, des outils existent pour rendre cette communication accessible et compréhensible.
la lettre « A » « 65 » et « a »+« 93 ». ASCII
Tous les fabricants d’ordinateurs et de systèmes d’exploitation utilisent cette table ASCII et
connaissent cette information ce qui permet une uniformité et une compatibilité de fonctionnement
entre les fabricants et entre nous, les utilisateurs.
19
Généralités
2. Langage machine A
Exemple
01000001
65 / 2 = 32.5 = impaire = 1
32 / 2 = 16 = pair = 0
16 / 2 = 8 = pair = 0
8 / 2 = 4 = pair = 0
4 / 2 = 2 = pair = 0
2 / 2 = 1 = pair = 0
1 / 2 = 0,5 = impaire = 1
Voilà, nous avons donc la valeur binaire de 65, soit 1 0 0 0 0 0 1
Comme nous fonctionnons sur 8 bits, nous ajouterons un « 0 » au début.
Capacité des 8 bits : Dites que 8 bits forment un octet, capable de
représenter 256 valeurs différentes (2^8). Cela permet de couvrir l'alphabet,
les chiffres et divers symboles.
20
Généralités
2. Langage machine
• Le langage machine est spécifique à l'architecture du processeur. Différents types d'ordinateurs
ont des ensembles d'instructions différents, ce qui signifie que le langage machine d'une
architecture ne peut pas être directement exécuté sur une autre.
• Les instructions sont directement comprises par le matériel informatique, ce qui signifie qu'il n'y
a aucune abstraction entre le programmeur et le matériel.
• Écrire du code en langage machine est fastidieux et difficile pour les programmeurs. Les
instructions sont complexes et difficiles à lire, car elles sont exprimées en binaire.
21
Généralités
2. Langage machine
• En raison de sa complexité et de sa spécificité à l'architecture, le langage machine n'est que
rarement utilisé directement par les programmeurs modernes. Au lieu de cela, des langages de
programmation de haut niveau, comme Python, C++, Java, etc., sont utilisés pour écrire du code,
puis ce code est compilé ou interprété en langage machine par un compilateur ou un interpréteur.
• Pour faciliter la programmation au niveau du langage machine, les programmeurs utilisent
souvent le langage d'assemblage, qui est un langage basé sur des mnémoniques compréhensibles
par les humains et qui est ensuite traduit en langage machine.
22
Généralités
3. L'assembleur
Le langage assembleur est un langage bas niveau. Demander à un processeur d’exécuter un
programme en assembleur n’est pas possible car les circuit du processeur ne comprennent que le
binaire. Donc il faut traduire le programme assembleur en instructions en langage machine. Cette
traduction est assurée par un logiciel spécifique appelé assembleur. Cette opération est dite
assemblage.
L’éditeur de liens permet de faire les liens aux éléments (fonctions, bibliothèques, ….) auxquels le
programme fait référence mais ne sont pas dans le fichier source. Puis créer un programme
exécutable qui contient tout ce qu’il lui faut pour fonctionner d’une manière autonome.
23
Généralités
4. Langages de haut niveau et de bas niveau
Les langages de programmation se divisent en deux catégories principales :
les langages de haut les langages de bas
niveau niveau
24
Généralités
4. Langages de haut niveau et de bas niveau
Ø Langages de haut niveau
Les langages de programmation de haut niveau sont des langages de programmation conçus pour
être plus faciles à lire et à écrire que les langages de bas niveau tels que le langage machine ou
l'assembleur. Ils offrent une abstraction plus élevée du matériel informatique sous-jacent, ce qui
permet aux programmeurs de s'exprimer de manière plus proche du langage naturel et de se
concentrer sur la résolution des problèmes plutôt que sur les détails de bas niveau. Voici quelques
exemples de langages de programmation de haut niveau : Python, Java, JavaScript, C#,C++, PHP,
Kotlin, R, Perl...
25
Généralités
4. Langages de haut niveau et de bas niveau
Ø Langages de haut niveau
Ces langages de programmation de haut niveau sont conçus pour simplifier le processus de
développement en offrant des structures de contrôle plus abstraites, des types de données plus
évolués, et une syntaxe plus lisible. Le choix du langage dépend généralement des besoins du projet,
de la préférence du développeur et du domaine d'application spécifique.
26
Généralités
4. Langages de haut niveau et de bas niveau
Ø Langages de bas niveau
Les langages de programmation de bas niveau sont des langages qui sont plus proches du langage
machine et du matériel informatique sous-jacent. Ils offrent moins d'abstraction que les langages de
haut niveau, ce qui signifie que le programmeur doit se préoccuper davantage des détails du matériel.
Voici quelques exemples de langages de programmation de bas niveau : Langage machine,
Assembleur, C , Fortran, COBOL...
27
Généralités
4. Langages de haut niveau et de bas niveau
Ø Langages de bas niveau
Ces langages de programmation de bas niveau sont souvent utilisés lorsque des performances
extrêmement élevées, un contrôle précis du matériel ou une utilisation spécifique du matériel sont
nécessaires. Cependant, ils sont généralement moins utilisés que les langages de haut niveau dans le
développement de logiciels modernes en raison de leur complexité et du fait qu'ils nécessitent plus
de temps et d'efforts pour la programmation.
28
Généralités
4. Langages de haut niveau et de bas niveau
29
Généralités
5. Compilation
Compilateur
Schémas de réalisation d’un programme
La compilation est le processus de transformation du code source écrit dans un langage de
programmation de haut niveau en un code exécutable par une machine. Elle permet au programme
de passer d’un format lisible par les humains à un format compréhensible par le processeur. Ce
processus est réalisé par un compilateur et se déroule en plusieurs étapes, dont l'une fait intervenir
l'assembleur.
30
Généralités
5. Compilation
• Le traitement par le préprocesseur : le fichier source est analysé par le préprocesseur qui
effectue des transformations purement textuelles (remplacement de chaînes de caractères,
inclusion d’autres fichiers source . . .).
• La compilation : la compilation proprement dite traduit le fichier généré par le
préprocesseur en assembleur, c’est-à-dire en une suite d’instructions du microprocesseur.
• L'assemblage : cette opération transforme le code assembleur en un fichier binaire, c'est-à-
dire en instructions directement compréhensibles par le processeur. Le fichier produit par
l'assemblage est appelé fichier objet .o).
• Editeur de liens : un programme est souvent séparé en plusieurs fichiers source (ceci permet
d'utiliser des librairies de fonctions standard déjà écrites comme les fonctions d'affichage par
exemple). Une fois le code source assemblé, il faut donc lier entre eux les différents fichiers
objets. L'édition de liens produit alors un fichier exécutable.
31
Généralités
5. Compilation
Le schéma ci-dessous représente en détail le fonctionnement de la compilation :
Fichiers
Préprocesseur Compilateur
sources
Fichiers sources modifiés
Fichiers d’en-tête
Fichiers intermédiaires
Éditeur de liens
(linker)
Fichiers intermédiaires ( autres) Programme exécutable Librairies
32
Généralités
5. Compilation
• La première étape du développement d’un programme est la création du code source avec un éditeur.
Le code source est une série de commandes ou déclaration qui indiquent à l’ordinateur les taches
que vous voulez lui faire exécuter. C’est la premier étape du développement et le code source est
créé à l’aide d’un éditeur.
33
Généralités
5. Compilation
La deuxième étape : le programme source est traité par le préprocesseur qui, suivant les directives
de compilation, substitue des symboles, inclut d’autres fichiers sources, etc.
34
Généralités
5. Compilation
• La troisième étape ( compilation du coude source): cette étape très importante consiste à
transformer vos fichiers source en code binaire compréhensible par l'ordinateur. Le compilateur
examine le programme source ligne par ligne, vérifie la syntaxe et génère un code intermédiaire
(code objet).
votre ordinateur ne peux pas comprendre le code source. il ne peut comprendre que des instructions binaires dans ce que l’on
appel du langage machine. Cela représente la deuxième étape de développement du programme. Cette opération est réalisé
par un compilateur qui transforme votre code source en un fichier contenant les mêmes instructions en langage
machine. Ce fichier créé par le compilateur contient le code objet, et on l’appelle fichier objet
35
Généralités
5. Compilation
• quatrième étape (linker) : Après avoir généré un code objet, il reste à rassembler les codes
intermédiaires ( dans le cas où le programme est découpé en plusieurs fichiers sources) et à les lier aux
diverses libraires. C’est le rôle de l’éditeur de liens (linker) qui produit le code exécutable du
programme.
Édition de liens : le linker (ou « éditeur de liens » en français) est un programme dont le rôle est d'assembler les
fichiers binaires .o. Il les assemble en un seul gros fichier : l'exécutable final ! Cet exécutable a
l'extension .exe sous Windows.
36
Introduction au Langage Python
IV. Introduction au Langage Python
1. Historique du langage Python :
Python est un langage de programmation, dont la première version est sortie en 1991. Créé 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ée, la Python Software Foundation, crée en 2001.
v Ce langage a été nommé en l’honneur de la célèbre troupe de comédiens, les Monty Python
37
Introduction au Langage Python
2. Definition du langage Python :
Python est un langage de programmation de haut niveau, interprété, conçu pour être
facilement lisible et compréhensible. Il permet de développer rapidement des applications dans
divers domaines.
le code source est exécuté directement par un interpréteur, plutôt que d'être
compilé en code machine avant l'exécution.
Ø les instructions que vous lui envoyez sont « transcrites » en langage machine
au fur et à mesure de leur lecture.
38
Introduction au Langage Python
2. Definition du langage Python :
C’est un langage objet, de nouvelle génération, pseudo-interprété, portable. Il est libre, ouvert,
gratuit. De nombreuses “ bibliothèques ” sont disponibles sur internet.
Son aspect proche de l'algorithmique fait de Python un choix privilégié pour l'enseignement,
car il facilite l'apprentissage des concepts fondamentaux de la programmation. En outre, Python
est un langage polyvalent, largement utilisé dans le « monde réel » pour diverses applications.
39
Introduction au Langage Python
3. Exemples d'Applications Basées sur Python :
• YouTube : Utilise Python pour le traitement des données et l'analyse.
• Google : Emploie Python dans divers services, notamment pour l'analyse et le
développement d'outils internes.
• Instagram : A été initialement construit en Python, notamment pour sa rapidité et
sa flexibilité.
• Netflix: Utilise Python pour l’élaboration de ses algorithmes de recommandation ;
• NASA : Utilise Python pour des projets de simulation et d’analyse de données
40
Introduction au Langage Python
4. Utilisation de Python :
• On peut utiliser python depuis une fenêtre de terminal (ou console) ou bien, on peut passer par un
environnement de développement (IDE - Interactive Development Environment) c'est à dire un
éditeur de texte muni de diférentes fonctions pour faciliter la programmation.
• Depuis une fenêtre de terminal : on lance le Shell Python en saisissant python (sous Windows) ou
bien python3 (sous Linux ou MacOS X). Une fois dans le Shell Python, on en sort en écrivant exit()
(ou via les raccourcis clavier Ctrl-D sous Linux/MacOS X, ou Ctrl-Z+enter sous Windows).
• Dans l'environnement de développement Pyzo le Shell Python et l'éditeur apparaissent dans la même
fenêtre, le Shell Python se trouve dans une des zones d'outils de la fenêtre (ces zones sont
réorganisables suivant le choix de l'utilisateur).
• Dans l'environnement de développement IDLE on arrive directement dans la fenêtre du Shell Python
41
Introduction au Langage Python
4. Utilisation de Python :
42
Introduction au Langage Python
5. Installation de Python sur votre ordinateur personnel
• Si vous avez un ordinateur personnel (celui-ci n'a pas besoin d'être puissant), vous pouvez
installer Python3 soit avec l'environnement de développement IDLE3, soit avec Pyzo.
• Si vous avez un PC sous Windows (ou un Mac) où Python3 n'est pas présent :
1) Téléchargez l'installeur Python3 à l'adresse suivante :
Pour Windows: htps://www.python.org/downloads/windows/
Pour MacOS X : htps://www.python.org/downloads/mac-osx/
2) Choisissez la dernière version « stable » de Python3 (pas une version « rc ») adaptée à
votre système (32/64 bits).
• Lancez l'exécution de l'installeur, Lors de l'installation, si les options sont disponibles
validez l'installation de Tkinter, IDLE3 ainsi que l'ajout de python dans le PATH.
43
Introduction au Langage Python
6. Premier contact avec Python :
• Vous devriez obtenir quelque chose de ce style pour Windows :
Les trois caractères « supérieur à » constituent le signal d’invite, ou prompt principal,
lequel vous indique que Python est prêt à exécuter une commande.
Ici, Python attend une commande que vous devez saisir au clavier. Tapez par exemple
l’instruction :
print("Hello world!")
puis, validez cette commande en appuyant sur la touche Entrée
44
Introduction au Langage Python
6. Premier contact avec Python :
Python a exécuté la commande directement et a affiché le texte Hello world!. Il attend
ensuite une nouvelle instruction en affichant l’invite de l’interpréteur Python (>>>).
• Vous pouvez refaire un nouvel essai en vous servant cette fois de l’interpréteur comme
d’une calculatrice :
45
Introduction au Langage Python
6. Premier contact avec Python :
• Le premier opérateur utilise le symbole « // ». Il permet d'obtenir la partie entière
d'une division.
• L'opérateur « % », que l'on appelle le « modulo », permet de connaître le reste de la
division
46