Computing">
[Go to site: main page, start]

0% ont trouvé ce document utile (0 vote)
19 vues29 pages

Algorithmique et Python : Cours 1er Semestre

Ce document présente le cours d'Algorithmique 1 en Python à l'Université Mohammed V, visant à enseigner les concepts fondamentaux de l'algorithmique et de la programmation. Il couvre des sujets tels que la création d'algorithmes, l'utilisation de Python, les structures de contrôle, et les tableaux. Le cours est destiné aux étudiants en première année du département d'informatique pour l'année universitaire 2025-2026.

Transféré par

loubna
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
19 vues29 pages

Algorithmique et Python : Cours 1er Semestre

Ce document présente le cours d'Algorithmique 1 en Python à l'Université Mohammed V, visant à enseigner les concepts fondamentaux de l'algorithmique et de la programmation. Il couvre des sujets tels que la création d'algorithmes, l'utilisation de Python, les structures de contrôle, et les tableaux. Le cours est destiné aux étudiants en première année du département d'informatique pour l'année universitaire 2025-2026.

Transféré par

loubna
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Mohammed V

Faculté des Sciences


de Rabat

Informatique 1
Algorithmique 1 - Python

Tronc Commun : MI
Mathématiques Informatique : Informatique
Département d’Informatique

Semestre : 1
Pr. O. IBRIHICH

E-mail : [Link]@[Link]
Année Universitaire : 2025-2026

Avenue Ibn Battouta B.P. 1014 RP, Rabat - Maroc


Tel + 212 (0) 5 37 77 18 34/35/38, Fax : + 212 (0) 5 37 77 42 61, decanat@[Link]
Objectifs du cours

Ce cours a pour but d(’)e :

— Apprendre et maîtriser les concepts de base de l’algorithmique et


de la programmation ;

— Être capable de mettre en œuvre ces concepts pour analyser des


problèmes simples et écrire les algorithmes correspondants ;

— Initier à la programmation en langage Python ;

— Acquérir des connaissances sur les fonctions et les modules pour


organiser le code ;

— Explorer les bibliothèques standard de Python pour des tâches cou-


rantes ;

— Se familiariser avec les bonnes pratiques de programmation et la


gestion d’erreurs.

2
Table des matières
Objectifs du cours. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Table des matières . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Table des figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Liste des tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Chapitre 1: Introduction à l’algorithmique & Python . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.1 Introduction à l’algorithmique . . . . . . . . . . . . . . . . . . . . . 11


1.1.1 Notion d’un algorithme . . . . . . . . . . . . . . . . . . . . . 12
1.1.2 Concepts importants en informatique . . . . . . . . . . . . . 14
1.1.3 Conception d’un algorithme . . . . . . . . . . . . . . . . . . 15
1.1.4 Les problèmes fondamentaux en algorithmique . . . . . . . . 16
1.1.5 Les caractéristiques d’un Algorithme . . . . . . . . . . . . . 16
1.1.6 Propriétés d’un algorithme . . . . . . . . . . . . . . . . . . . 17
1.1.7 Représentation d’un algorithme . . . . . . . . . . . . . . . . 17
1.1.8 Structure d’un algorithme . . . . . . . . . . . . . . . . . . . 18
1.2 Introduction au language Python . . . . . . . . . . . . . . . . . . . 19
1.2.1 Définition du langage Python . . . . . . . . . . . . . . . . . 19
1.2.2 Caractéristiques du langage Python . . . . . . . . . . . . . . 20
1.2.3 Versions du Python . . . . . . . . . . . . . . . . . . . . . . . 22

3
Table des matières 4

1.2.4 Installation du Python . . . . . . . . . . . . . . . . . . . . . 22


1.2.5 Environnement du Python . . . . . . . . . . . . . . . . . . . 24

Chapitre 2: Instructions élémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.1 Les variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26


2.1.1 Définition d’une variable . . . . . . . . . . . . . . . . . . . . 26
2.1.2 Déclaration des variables . . . . . . . . . . . . . . . . . . . . 26
2.2 Une constante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3 Les types de données de base . . . . . . . . . . . . . . . . . . . . . 30
2.3.1 Type Entier . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.2 Type Réél . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.3 Type Booléen . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.4 Type complexe . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.5 Type Caractère . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.6 Type Chaîne de caractères . . . . . . . . . . . . . . . . . . . 33
2.4 Affectation et notation . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4.2 Les variantes de l’affectation . . . . . . . . . . . . . . . . . . 43
2.5 Les opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.5.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.5.2 Les opérateurs Arithmétiques . . . . . . . . . . . . . . . . . 45
2.5.3 Les opérateurs Logiques . . . . . . . . . . . . . . . . . . . . 46
2.5.4 Les opérateurs de Comparaison . . . . . . . . . . . . . . . . 47
2.5.5 Priorité des opérations . . . . . . . . . . . . . . . . . . . . . 48
2.6 Transtypage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

Pr. [Link] Informatique 1


Table des matières 5

2.7 Les entrées/sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . 49


2.7.1 Saisie de données . . . . . . . . . . . . . . . . . . . . . . . . 51
2.7.2 Affichage de résultats . . . . . . . . . . . . . . . . . . . . . . 53
2.7.3 Les séquences d’échappement . . . . . . . . . . . . . . . . . 55

Chapitre 3: Structures de contrôle : conditionnelles et répétitives . . . . . . . . . . . . . . . 57

3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2 Les structures séquentielles . . . . . . . . . . . . . . . . . . . . . . . 57
3.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2.2 La syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.3 Les structures conditionnelles . . . . . . . . . . . . . . . . . . . . . 58
3.3.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.3.2 Structures conditionnelles simples . . . . . . . . . . . . . . . 59
3.3.3 Structure conditionnelle à choix multiple . . . . . . . . . . . 64
3.4 Les structures conditionnelles (en python) : if, elif, else . . . . . . . 66
3.5 La structure conditionnelle (en python) : match....case . . . . . . . 68
3.6 Les structures répétitives ou itératives (en algorithmique) . . . . . . 69
3.6.1 La boucle TantQue . . . . . . . . . . . . . . . . . . . . . . . 70
3.6.2 La boucle Répéter ... Jusqu’à . . . . . . . . . . . . . . . . . 73
3.6.3 La boucle Pour . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.7 Les structures répétitives ou itératives (en Python) . . . . . . . . . 78
3.7.1 La boucle While . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.7.2 La boucle For . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.8 Les instructions break et continue . . . . . . . . . . . . . . . . . . . 81
3.8.1 L’instruction break . . . . . . . . . . . . . . . . . . . . . . . 81

Pr. [Link] Informatique 1


Table des matières 6

3.8.2 L’instruction continue . . . . . . . . . . . . . . . . . . . . . 82


3.9 Les notions de bloc d’instructions et d’indentation . . . . . . . . . . 82
3.9.1 Indentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.9.2 Bloc d’instructions . . . . . . . . . . . . . . . . . . . . . . . 83
3.10 Les Commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

Chapitre 4: Les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.2 Définition des tableaux . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.3 Relation entre tableaux et boucles . . . . . . . . . . . . . . . . . . . 88
4.4 Tableau à une dimension . . . . . . . . . . . . . . . . . . . . . . . . 88
4.4.1 Déclaration d’un tableau à une dimension . . . . . . . . . . 88
4.4.2 Manipulation des tableaux à une dimension . . . . . . . . . 90
4.5 Tableaux à deux dimensions . . . . . . . . . . . . . . . . . . . . . . 101
4.5.1 Déclaration d’un tableau à deux dimensions . . . . . . . . . 102
4.5.2 Manipulation des tableaux à deux dimensions . . . . . . . . 103
4.6 Tableaux dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.7 Les algorithmes de tri . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.7.1 Le tri par sélection . . . . . . . . . . . . . . . . . . . . . . . 108
4.7.2 Le Tri par insertion . . . . . . . . . . . . . . . . . . . . . . . 111
4.7.3 Comparaison entre tri par sélection et insertion . . . . . . . 113
4.7.4 Le Tri à bulles (bubble sort) . . . . . . . . . . . . . . . . . . 114
4.7.5 Le Tri rapide (quick sort) . . . . . . . . . . . . . . . . . . . 117
4.8 Les algorithmes de recherche . . . . . . . . . . . . . . . . . . . . . . 119
4.8.1 La recherche séquentielle . . . . . . . . . . . . . . . . . . . . 119

Pr. [Link] Informatique 1


Table des matières 7

4.8.2 La recherche dichotomique . . . . . . . . . . . . . . . . . . . 122

Références . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Pr. [Link] Informatique 1


Table des figures
1.1 Exemple d’algorithme : Recette de la pâte à crêpe . . . . . . . . . . 13
1.2 Chaîne de compilation . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Chaîne d’interprétation . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Représentation de l’algorithme . . . . . . . . . . . . . . . . . . . . . 17
1.5 Structure générale d’un algorithme . . . . . . . . . . . . . . . . . . 18
1.6 Les bibliothèques de Python . . . . . . . . . . . . . . . . . . . . . . 21
1.7 Fenêtre de commande fournie avec le langage Python . . . . . . . . 23

2.1 Représentation d’une variable . . . . . . . . . . . . . . . . . . . . . 27


2.2 L’indexation d’une chaîne . . . . . . . . . . . . . . . . . . . . . . . 38
2.3 Extraction de sous-chaînes . . . . . . . . . . . . . . . . . . . . . . . 38
2.4 L’affectation illustrée . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.5 Priorité des opérations . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.6 Les entrées-sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.7 Périphérique d’entré/Sortie . . . . . . . . . . . . . . . . . . . . . . . 50

3.1 Format Organigramme du si . . . . . . . . . . . . . . . . . . . . . . 60


3.2 Format Organigramme du si..sinon . . . . . . . . . . . . . . . . . . 61
3.3 Format Organigramme du si imbriqué . . . . . . . . . . . . . . . . . 62
3.4 Format Organigramme de la structure Selon.... Faire . . . . . . . . 65
3.5 Format Organigramme de la boucle TantQue . . . . . . . . . . . . . 71
3.6 Format Organigramme de la boucle Répéter . . . . . . . . . . . . . 74

8
Table des figures 9

3.7 Format Organigramme de la boucle Pour . . . . . . . . . . . . . . . 75


3.8 Choix du type de la boucle . . . . . . . . . . . . . . . . . . . . . . . 78
3.9 Bloc d’instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

4.1 Représentation graphique d’un tableau . . . . . . . . . . . . . . . . 86


Liste des tableaux
2.1 La table de vérité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2 Opérations applicables aux chaînes de caractères . . . . . . . . . . . 34
2.3 Les opérateurs arithmétiques . . . . . . . . . . . . . . . . . . . . . . 46
2.4 Les opérateurs logiques . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.5 Les opérateurs de comparaison . . . . . . . . . . . . . . . . . . . . . 47
2.6 Les séquences d’échappement . . . . . . . . . . . . . . . . . . . . . 56

10
Chapitre
1
Introduction à l’algorithmique &
Python
1.1 Introduction à l’algorithmique

L’algorithmique est un terme d’origine arabe, hommage à Al

Khawarizmi (780-850) auteur d’un ouvrage décrivant des méthodes de calculs


algébriques. Il est un mathématicien, géographe, astrologue et astronome musul-
man arabe dont les écrits ont permis l’introduction de l’algèbre en Europe.
❑ Ce savant arabe a publié plusieurs méthodes pour le calcul effectif de racines
d’une équation du second degré et grâce à lui les chiffres arabes ont pu se diffuser
en occident.
❑ Le terme algorithme est un mot dérivé du nom du mathématicien Al Khwa-
rizmi qui a vécu au 9ème siècle, était membre d’un académie des sciences à Bagdad.
Il est employé en informatique pour décrire une méthode de résolution de problème
programmable sur machine.
❑ L’algorithmique désigne la discipline qui étudie les algorithmes et leurs
applications en informatique.
❑ Une bonne connaissance de l’algorithmique permet d’écrire des algorithmes
exacts et efficaces.

11
Chapitre 1 Introduction à l’algorithmique & Python 12

1.1.1 Notion d’un algorithme

Définition 1
✍ Un algorithme est une suite finie de règles à appliquer dans un ordre
déterminé à un nombre fini de données pour arriver avec certitude, en un
nombre fini d’étapes, à un certain résultat et cela, indépendamment des données.
Un peu plus précisément : Une séquence de pas de calcul qui prend un en-
semble de valeurs comme entrée et produit un ensemble de valeurs comme sortie.

Définition 2
✍ Un algorithme est une méthode de résolution de problème énoncée
sous la forme d’une série d’opérations à effectuer. La mise en œuvre de
l’algorithme consiste en l’écriture de ces opérations dans un langage de pro-
grammation et constitue alors la brique de base d’un programme informatique.

Définition 3
✍ Un algorithme est une suite finie et ordonnée d’opérations (actions)
élémentaires finies (en temps et moyens). Elle est régie par un ensemble
de règles ou d’instructions de contrôle (séquencement, sélection et itéra-
tion) permettant d’aboutir à un résultat déterminé d’un problème donné.

Remarque 1.1
✓ Les algorithmes ne sont pas nés avec l’informatique : L’algorithme d’Euclide
pour calculer le PGCD de deux entiers est vieux de plus de 2000 ans !, aussi des
descriptions précises d’algorithmes sont présents dans la Chine ancienne (Par
exemple, pour extraire des racines carrées à partir de divisions effectuées sur une

Pr. [Link] Informatique 1


Chapitre 1 Introduction à l’algorithmique & Python 13

"surface à calculer").
✓ En principe un algorithme est indépendant de toute implantation. Ce-
pendant dans la pratique de la programmation il s’avère indispensable
de tenir compte des capacités du langage de programmation utilisé. En
plus, un problème donné pourraient correspondre plusieurs algorithmes.

Exemple 1.1 Recette de cuisine : Recette de la pâte à crêpe

1. Préparer les ingrédients (Farine, œufs, sel, lait) ;

2. Verser la farine et le sel dans le saladier ;

3. Casser les œufs, mélanger avec une cuillère en bois et ajouter progressive-
ment le lait sans cesser de tourner ;

4. Laisser reposer la pâte pendant une heure ;

5. Faire chauffer la poêle, Verser-y une louche de pâte. Répartir-la bien en


bougeant la poêle. Faire cuire une crêpe fine.

Figure 1.1 – Exemple d’algorithme : Recette de la pâte à crêpe

Pr. [Link] Informatique 1


Chapitre 1 Introduction à l’algorithmique & Python 14

1.1.2 Concepts importants en informatique

❑ Un programme : Une série d’instructions pouvant s’exécuter en séquence,


ou en parallèle (parallélisme matériel) qui réalise (implémente) un algorithme.
❑ Une instruction : Ce terme est assez vague et dépend en général du langage.
On peut considérer qu’une instruction est une expression syntaxiquement correcte
pour un langage donné.
❑ Un problème : Expliquer à la "machine" comment elle doit s’y prendre.
❑ Un langage de programmation : En informatique, un langage de pro-
grammation est une notation conventionnelle destinée à formuler des algorithmes
et produire des programmes informatiques qui les appliquent.
❑ Un compilateur : Un programme qui traduit le texte dans un langage qui
permettra son exécution, tel le langage machine, le byte code ou le langage assem-
bleur. La compilation est le fait de traduire un programme afin que l’ordinateur
le comprenne.

Figure 1.2 – Chaîne de compilation

❑ Un interpréteur : Un programme qui exécute les instructions demandées.


Il joue le même rôle qu’une machine qui reconnaîtrait ce langage.

Figure 1.3 – Chaîne d’interprétation

❑ Un Langage machine : Les instructions permettent d’effectuer des calculs


arithmétiques ou logiques, déplacer ou copier des données vers l’exécution d’autres
instructions. Ces instructions sont enregistrées sous forme de séquences de bits, oú

Pr. [Link] Informatique 1


Chapitre 1 Introduction à l’algorithmique & Python 15

chaque séquence correspond au code de l’opération à effectuer et aux opérandes,


c’est-à-dire aux données concernées ; c’est le langage machine.
❑ Un Langage interprété est converti en instructions propres à la machine
au fur et à mesure de son exécution.
❑ Un mot-clé est une composante du langage et fait partie de sa grammaire
qui comprend également les opérateurs numériques.

1.1.3 Conception d’un algorithme

La conception d’un algorithme est un peu compliqué et se fait toujours en plu-


sieurs étapes qui correspondent à des raffinements successifs. La première version
de l’algorithme est autant que possible indépendante d’une implémentation parti-
culière. Cette conception passe par plusieurs étapes :

1. Analyse : définition du problème en terme de séquences d’opérations de calcul


de stockage de données, etc. ;

2. Conception : définition précise des données, des traitements et de leur sé-


quencement ;

3. Implantation : traduction et réalisation de l’algorithme dans un langage


précis ;

4. Test : Vérification du bon fonctionnement de l’algorithme.

On peut les résumer en trois étapes fondamentales :

1. Les entrées : Il s’agit de repérer les données nécessaires à la résolution du


problème ;

2. Le traitement : Il s’agit de déterminer toutes les étapes des traitements à


faire et donc des "instructions" à développer pour arriver aux résultats ;

Pr. [Link] Informatique 1


Chapitre 1 Introduction à l’algorithmique & Python 16

3. Les sorties : les résultats obtenus peuvent être affichés sur l’écran, ou impri-
més sur papier, ou bien encore conservés dans un fichier.

1.1.4 Les problèmes fondamentaux en algorithmique

1. Complexité

• En combien de temps un algorithme va -t-il atteindre le résultat es-


compté ?
• De quel espace a-t-il besoin ?

2. Calculabilité

• Existe-t-il des tâches pour lesquelles il n’existe aucun algorithme ?


• Etant donnée une tâche, peut-on dire s’il existe un algorithme qui la ré-
solve ?

3. Correction

• Peut-on être sûr qu’un algorithme réponde au problème pour lequel il a


été conçu ?

1.1.5 Les caractéristiques d’un Algorithme

Un algorithme est une marche à suivre :

1. dont les opérations sont toutes définies et portent sur des objets appelés in-
formations,

2. dont l’ordre d’exécution des opérations est défini sans ambiguïté,

3. qui est réputée résoudre de manière certaine un problème ou une classe de


problèmes,

4. s’exprime dans un langage indépendant des langages de programmation,

5. Il est caractérisé par un début et une fin.

Pr. [Link] Informatique 1


Chapitre 1 Introduction à l’algorithmique & Python 17

1.1.6 Propriétés d’un algorithme

Propriété 1
Un algorithme doit :
✏ avoir un nombre fini d’étapes,
✏ avoir un nombre fini d’opérations par étape,
✏ se terminer après un nombre fini d’opérations,
✏ fournir un résultat.
Chaque opération doit être :
✏ définie rigoureusement et sans ambiguïté ;
✏ effective, c-à-d. réalisable par une machine.
Le comportement d’un algorithme est déterministe.

1.1.7 Représentation d’un algorithme

Deux types de notations ont représenté des algorithmes :

• L’organigramme représente graphiquement l’algorithme (avec des carrés,


des losanges, etc). C’est visuel (un dessin vaut mille mots !), mais ça exige
plus de travail de mise en page et plus d’espace sur papier.

• Le pseudo-code représente textuellement l’algorithme. Moins visuel, mais


plus facile à mettre sur papier et requiert moins d’espace.

Figure 1.4 – Représentation de l’algorithme

Pr. [Link] Informatique 1


Chapitre 1 Introduction à l’algorithmique & Python 18

Remarque 1.2
✓ Le pseudo-code est généralement préféré à l’organigramme. Il est plus
rapide à écrire et plus facile à traduire en un langage de programmation.

1.1.8 Structure d’un algorithme

Lorsqu’on écrit un algorithme, il faut respecter la syntaxe (règles d’écriture d’un


langage donné), un algorithme écrit en pseudo-code est composé de trois parties
suivantes : L’en-tête, la partie déclarative et le corps.
Un algorithme prend généralement la structure suivante :

Figure 1.5 – Structure générale d’un algorithme

1. L’en-tête d’un algorithme : L’en-tête d’un algorithme est constitué du mot

Pr. [Link] Informatique 1


Chapitre 1 Introduction à l’algorithmique & Python 19

Algorithme, suivi d’un nom identifiant l’algorithme.

2. La partie déclarative : Comprend une liste des variables et des constantes


utilisés et manipulés dans le corps de l’algorithme.

3. Les données d’un algorithme : Les données (objets) sont des informations
nécessaires au déroulement d’un algorithme. On distingue deux catégories :
les constantes et les variables.
1.2 Introduction au language Python

Python a été créé en 1991 par Guido van Rossum, né en 1956 à

Haarlem, aux Pays-Bas. Bien sûr, Guido van Rossum n’a pas développé et fait évo-
luer lui-même tous les composants Python. Entre 1995 et 2001, Rossum a changé
plusieurs fois de travail tout en continuant l’élaboration du langage Python.
En 2001, la PSF (Python Software Foundation) est créée. Il s’agit d’une organisa-
tion à but non lucratif détenant les droits de propriété intellectuelle de Python. Il
est depuis distribué sous forme de logiciel libre. Python est couvert par sa propre
licence.
1.2.1 Définition du langage Python

Définition
✍ Python est un langage de programmation largement utilisé, interprété,
orienté objet et de haut niveau avec une sémantique dynamique, utilisé
pour la programmation à usage général.

Remarque 1.3
✓ Le langage Python n’est pas un langage compilé car un programme Python

Pr. [Link] Informatique 1


Chapitre 1 Introduction à l’algorithmique & Python 20

n’est pas traduit en langage machine, il est un langage interprété.


✓ Entre son écriture et son exécution, il n’y a pas d’étape inter-
médiaire telle que la compilation et on peut ainsi tester un pro-
gramme plus rapidement même si son exécution est alors plus lente.

1.2.2 Caractéristiques du langage Python

Ce langage de programmation présente de nombreuses caractéristiques intéres-


santes :
❑ Il est multi-plateforme. C’est-à-dire qu’il fonctionne sur de nombreux sys-
tèmes d’exploitation : Windows, Mac OS X, Linux, Android, iOS.
❑ Il est gratuit. Vous pouvez l’installer sur autant d’ordinateurs que vous
voulez (même sur votre téléphone !).
❑ C’est un langage de haut niveau. Il demande relativement peu de connais-
sance sur le fonctionnement d’un ordinateur pour être utilisé.
❑ C’est un langage interprété. Un script Python n’a pas besoin d’être com-
pilé pour être exécuté, contrairement à des langages comme le C ou le C++.
❑ Il est orienté objet. C’est-à-dire qu’il est possible de concevoir en Python
des entités qui miment celles du monde réel (une cellule, une protéine, un atome,
etc.) avec un certain nombre de règles de fonctionnement et d’interactions. En
plus, Il supporte l’héritage multiple et la surcharge des opérateurs. Dans son
modèle objets, et en reprenant la terminologie de C++, toutes les méthodes sont
virtuelles.
❑ La syntaxe de Python est très simple et, combinée à des types de données
évolués (listes, dictionnaires...), conduit à des programmes à la fois très compacts
et très lisibles. À fonctionnalités égales, un programme Python est souvent de 3 à

Pr. [Link] Informatique 1


Chapitre 1 Introduction à l’algorithmique & Python 21

5 fois plus court qu’un programme équivalent (C ou C++ ou même Java), ce qui
représente en général un temps de développement de 5 à 10 fois plus court et une
facilité de maintenance largement accrue.
❑ La bibliothèque standard de Python, et les paquetages contribués,
donnent accès à une grande variété de services : chaînes de caractères et expressions
régulières, services UNIX standards (fichiers, pipes, signaux, sockets, threads...),
protocoles Internet (Web, News, FTP, CGI, HTML...), persistance et bases de
données, interfaces graphiques.
❑ Il n’y a pas de pointeurs explicites en Python.
❑ Python intègre, comme Java ou les versions récentes de C++, un système
d’exceptions, qui permettent de simplifier considérablement la gestion des er-
reurs.
❑ Python est extensible : comme Tcl ou Guile, on peut facilement l’interfacer
avec des bibliothèques C existantes. On peut aussi s’en servir comme un langage
d’extension pour des systèmes logiciels complexes.
❑ Enfin, il est très utilisé en bio-informatique et plus généralement en ana-
lyse de données.

Figure 1.6 – Les bibliothèques de Python

Pr. [Link] Informatique 1


Chapitre 1 Introduction à l’algorithmique & Python 22

1.2.3 Versions du Python

Python continue à évoluer, mais cette évolution ne vise qu’à améliorer ou


perfectionner le produit. Il est donc très rare qu’il faille modifier les programmes
afin de les adapter à une nouvelle version qui serait devenue incompatible avec les
précédentes. Certains versions ont été développés sous Python 1.5.2, puis d’autres
sous Python 1.6, Python 2.0, 2.1, 2.2, 2.3, 2.4, etc. Ils n’ont guère nécessité de
modifications avant l’apparition de Python 3.
Cette nouvelle version du langage Python 3 a cependant apporté quelques
changements de fond qui lui confèrent une plus grande cohérence et même une
plus grande facilité d’utilisation, mais qui imposent une petite mise à jour de tous
les scripts écrits pour les versions précédentes.
Attention
☞ Python 2 est un autre langage car il existe quelques différences importantes
entre Python 2 et Python 3.

Exemple 1.2 Différence entre Python 2 et 3


Python 2 Python 3
print "Bonjour" print("Bonjour")
print "Bonjour", variable1 print("Bonjour", variable1)
print "\n".join([x, y]) print(x, y, sep="\n")
6/4==1 1.5

1.2.4 Installation du Python

Python a l’avantage d’être disponible sur de nombreuses plates-formes


comme Microsoft Windows, Linux ou Mac OS X. L’installation sous Win-

Pr. [Link] Informatique 1


Chapitre 1 Introduction à l’algorithmique & Python 23

dows est simple. Le langage Python est déjà intégré aux systèmes d’exploitation
Linux et Mac OS X.
Sous Microsoft Windows, il suffit d’exécuter le fichier [Link] ou tout
autre version plus récente.
En règle générale, il est conseillé de télécharger la dernière version stable du
langage, celle avec laquelle le plus grand nombre d’extensions seront compatibles,
en particulier toutes celles dont vous avez besoin.
IDLE (Integrated Development and Learning Environment) est un acronyme ou
environnement de développement et d’apprentissage intégré de Python.
IDLE a les fonctionnalités suivantes :

• Console Python (interpréteur interactif) avec coloration du code entré, des


sorties et des messages d’erreur ;

• Editeur de texte multi-fenêtres avec annulations multiples, coloration


Python, indentation automatique, aide pour les appels de fonction, etc ;

• Débogueur avec points d’arrêt persistants, pas-à-pas et visualisation des


espaces de nommage locaux et globaux.

Figure 1.7 – Fenêtre de commande fournie avec le langage Python

Remarque 1.4
✓ Pour installer Python, il suffit de télécharger la version 3 qui corres-
pond à votre système d’exploitation (Windows ou Mac) à l’adresse :https:

Pr. [Link] Informatique 1


Chapitre 1 Introduction à l’algorithmique & Python 24

//[Link]/downloads/
✓ Pour ce qui est des systèmes Linux, Python est généralement déjà installé
par défaut, et Idle se trouve dans les dépôts de la plupart des distributions.

1.2.5 Environnement du Python

Anaconda, Google Colab et PyCharm sont tous des environnements associés au


développement Python, mais ils servent à des fins différentes et peuvent être uti-
lisés en fonction des besoins spécifiques.
Anaconda
Anaconda est une distribution Python qui est principalement utilisée pour la
science des données et l’informatique scientifique. Il comprend Python lui-
même, ainsi que de nombreuses bibliothèques scientifiques pré-installées telles
que NumPy, pandas, matplotlib, et bien d’autres. Voici quelques points clés :
❑ Il est souvent utilisé dans le domaine de la science des données, de
l’apprentissage automatique et de l’analyse de données.
❑ Anaconda inclut un gestionnaire d’environnements conda, ce qui faci-
lite la création et la gestion d’environnements virtuels pour isoler les projets.
❑ Jupyter Notebook est également inclus, ce qui permet de créer des do-
cuments interactifs contenant du code Python, des graphiques et du texte
explicatif.
Google Colab
Google Colab (Colaboratory) est une plateforme cloud gratuite basée sur
Jupyter Notebook. Voici quelques points clés :
❑ Il s’agit d’un environnement Python entièrement en ligne, ce qui signifie
que vous n’avez pas besoin d’installer sur votre propre ordinateur.

Pr. [Link] Informatique 1


Chapitre 1 Introduction à l’algorithmique & Python 25

❑ Il est idéal pour l’exécution de code Python en utilisant des ressources


cloud gratuites, y compris l’accès aux tâches d’apprentissage automatique
intensives en calcul.
❑ Google Colab est populaire parmi les chercheurs en apprentissage automa-
tique pour la création et l’exécution de modèles d’apprentissage profond.
PyCharm
PyCharm est un environnement de développement intégré (IDE) dédié à
Python. Voici quelques points clés :
❑ C’est un IDE robuste avec des fonctionnalités telles que la coloration
syntaxique, le débogage, le contrôle de version intégré, etc.
❑ Il est polyvalent et convient à tout type de développement Python, que ce
soit pour la science des données, le développement web, l’automatisation,
etc.
❑ PyCharm est particulièrement populaire parmi les développeurs Python pro-
fessionnels.
En résumé, vous pouvez choisir l’environnement qui convient le mieux à votre cas
d’utilisation. Anaconda est idéal pour la science des données, Google Colab offre
un accès gratuit aux ressources cloud, tandis que PyCharm est un IDE puissant
pour le développement Python général. Certains développeurs utilisent même une
combinaison de ces environnements en fonction de leurs besoins spécifiques.

Pr. [Link] Informatique 1


Chapitre
2
Instructions élémentaires
2.1 Les variables

Un algorithme (ou un programme informatique), agit sur des nombres, des textes,
... Ces différents éléments sont stockés dans des variables. On peut se représenter
une variable comme une boîte portant une étiquette ("le nom de la variable") à
l’intérieur de laquelle on peut placer un contenu.
En informatique, les variables sont des emplacements réservés dans la mé-
moire de l’ordinateur auxquels on attribue une étiquette. Chaque emplacement
mémoire a un numéro qui permet d’y faire référence de façon unique : c’est l’adresse
mémoire de cette cellule.

2.1.1 Définition d’une variable

Définition
✍ Une variable sert à stocker la valeur d’une donnée dans un langage de
programmation, dont le contenu peut être modifié par une action durant l’exé-
cution d’un algorithme. En Python, une variable est un identificateur associé à
une valeur, c’est une référence d’objet.

2.1.2 Déclaration des variables

❑ La première chose à faire avant de pouvoir utiliser une variable est de


créer la boîte et de lui coller une étiquette. Ceci se fait tout au début de
l’algorithme, avant même les instructions proprement dites. C’est ce qu’on appelle

26
Chapitre 2 Instructions élémentaires 27

la déclaration des variables.


❑ Une variable ne peut être utilisée que s’elle est déclarée. La déclaration se
fait par la donnée du nom de la variable et du type de la variable.

Figure 2.1 – Représentation d’une variable

❑ Une variable est caractérisée par :

• Un nom ou identificateur que l’utilisateur choisit ; il permet au programme


de reconnaître quelle donnée il doit manipuler.

• Une valeur qui peut évoluer au cours du programme, mais qui doit respecter
le type.

• Un type (entier, réel, caractère ou booléen).

L’identificateur ou le nom de la variable


❑ L’identificateur ou le nom de la variable (l’étiquette de la boîte) obéit à
des règles qui changent selon le langage utiliser. Les principales règles à respecter
sont :

• Un identificateur commence toujours par une lettre alphabétique (E1 et


non 1E) ou un underscore ;

• A l’exception du premier caractère, il peut contenir : des lettres, des chiffres,


et le symbole ’_’ (souligné ou underscore) ;

• On exclut la plupart des signes de ponctuation, en particulier les espaces

Pr. [Link] Informatique 1


Chapitre 2 Instructions élémentaires 28

(SMI2009 et non SMI 2009) ;

• Les majuscules et les minuscules sont des lettres différentes : les identi-
ficateurs toto et Toto sont différents ;

• Le nombre maximal de caractères qui composent le nom d’une variable


dépend du langage utilisé ;

• Le nom de variable doit avoir une relation avec le rôle de cette variable
et être compréhensible ;

• Ne pas utiliser les mots clés réservés du langage de programmation (par


exemple en C : int, float, double, switch, case, for, main, return, ...).
❑ En plus de ces règles, les 33 mots clés réservés en Python 3 sont :
and as assert break class
del elif else except False
from with if import in
None yield not or pass
while global nonlocal return is
continue def finally for lambda
try raise True

La déclaration des variables


Avant d’utiliser une variable dans un programme, il faut la définir ou la
déclarer, c’est-à-dire indiquer le mot VAR ou Variables, puis le nom de la
variable et enfin son type précédé de ’ :’.
Déclaration
VAR : <liste d’identificateurs1> : typeVariable1
<liste d’identificateurs2> : typeVariable2

Pr. [Link] Informatique 1


Chapitre 2 Instructions élémentaires 29

Une variable s’appelant taux, et dont le type est réel, doit être définie de la
manière suivante :

Exemple 2.1 Exemple de déclaration


VAR taux : réel

Cette déclaration crée une variable nommée taux dans laquelle peuvent être
stockés des nombres à virgule.

2.2 Une constante

Définition
✍ Une constante est une variable dont la valeur est définie au début du
programme et reste inchangée durant toute son exécution (c’est-à-dire
reste inchangée tout au long de l’algorithme).
✍ Une constante doit toujours recevoir une valeur dès sa déclaration. Elle est
caractérisée par son nom et sa valeur (fixe).

Déclaration
Constante identificateur←valeur : type

Exemple 2.2 Exemple de déclaration


Pour calculer la surface des cercles, la valeur de pi est une constante mais le
rayon est une variable.
Constante PI ← 3.14 : réel

Pr. [Link] Informatique 1

Vous aimerez peut-être aussi