Chapitre3 Programmer en Python
Chapitre3 Programmer en Python
de l’algorithmique
Chapitre 3 : Programmer En
Python
Réalisé par :
Mme ZROURI Amira
Plan du chapitre
1. Transformer une suite d’étapes algorithmiques en une suite
d’instructions Python.
2. Manipuler les données.
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Critères de choix d’un langage de programmation
Langage de programmation
• Le langage machine est la suite de bits qui est interprétée par le processeur d'un ordinateur
exécutant un programme informatique.
• Le langage machine est peu compréhensible par un humain d’où le besoin au recours à un
langage de programmation de haut niveau.
• Le langage de programmation est un outil à l’aide duquel le programmeur écrit des programmes
exécutables sur un ordinateur.
Exemples de langages de programmation:
FORTRAN, COBOL, Pascal, Ada, C, Java, Python
Un code source ou programme écrit en un langage de programmation de haut niveau qui est ensuite
traduit vers un langage machine.
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Critères de choix d’un langage de programmation
Langage de programmation
Il existe 2 techniques pour effectuer la traduction en langage machine :
Langage interprété :
Il est important de pouvoir évaluer des langages de programmation afin de pouvoir les choisir de
manière appropriée et de les améliorer. Cinq critères d’évaluation sont généralement utilisés :
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Critères de choix d’un langage de programmation
Critères d’évaluation
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Critères de choix d’un langage de programmation
Critères d’évaluation
La simplicité :
• S’il y a beaucoup de composantes de base (telles que les mots clés), il est difficile de toutes les
connaître.
• S’il existe plusieurs façons d’exprimer une commande, il est aussi difficile de toutes les connaître.
• Trop de simplicité cause la difficulté de lecture.
• Il faut alors trouver un compromis entre la simplicité et la facilité d'écriture.
L’orthogonalité :
• L'orthogonalité est la propriété qui signifie "Changer A ne change pas B« .
• Dans les langages de programmation, cela signifie que lorsque vous exécutez une instruction, seule
cette instruction se produit.
• De plus, la signification d’un élément du langage doit être indépendante du contexte dans lequel il
apparait.
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Critères de choix d’un langage de programmation
Critères d’évaluation
Instructions de contrôle :
• Pour la lisibilité d’un langage de programmation, il est important d’avoir des structures de
contrôle adéquates (structures itératives, structures conditionnelles, etc.).
• Par exemple, l’un des plus grands problèmes du premier BASIC est que sa seule instruction
de contrôle était le « goto ».
• Les différences peuvent porter sur l'environnement matériel (processeur) comme sur l'environnement
logiciel (système d’exploitation).
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Critères de choix d’un langage de programmation
Langage Python
• Python est un langage de programmation développé depuis 1989 par Guido van Rossum et de
nombreux contributeurs bénévoles.
• En février 1991, la première version publique, numérotée 0.9.0.
• En Octobre 2000, la version Python 2.0 a été publiée puis suivie par les versions 2.1, 2.2 jusqu’à la
version 2.7.
• Afin de réparer certains défauts du langage, la version Python 3.0 a été publiée en décembre 2008.
• Cette version a été suivie par :
• La version 3.1 en 2009
• La version 3.3 en 2011
• La version 3.4 en 2014
• La version 3.6 en 2016
• La version 3.7 en 2017
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Critères de choix d’un langage de programmation
Caractéristiques de Python
•Python est portable, non seulement sur les différentes variantes d'Unix, mais aussi sur les OS
propriétaires : MacOS, BeOS, NeXTStep, MS-DOS et les différentes variantes de Windows.
•Python est gratuit mais on peut l'utiliser sans restriction dans des projets commerciaux.
•La syntaxe de Python est très simple et, combinée à des types de données évolués (listes,
dictionnaires, etc.), conduit à des programmes à la fois très compacts et très lisibles.
•Python gère ses ressources (mémoire, descripteurs de fichiers, etc.) sans intervention du
programmeur.
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Critères de choix d’un langage de programmation
Caractéristiques de Python
• Python est orienté-objet.
• Python intègre un système d'exceptions : les exceptions permettent de simplifier considérablement la
gestion des erreurs.
• Python est dynamiquement typé : tout objet manipulable par le programmeur possède un type bien
défini à l'exécution, qui n'a pas besoin d'être déclaré à l'avance.
• Python est orthogonal : un petit nombre de concepts suffit à engendrer des constructions très riches.
• Python est introspectif : un grand nombre d'outils de développement, comme le debugger sont
implantés en Python lui-même.
• Python est extensible : on peut facilement l'interfacer avec des bibliothèques existantes.
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Critères de choix d’un langage de programmation
Caractéristiques de Python
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 standard (fichiers, pipes,
signaux, sockets, threads, etc.), protocoles Internet (Web, News, FTP, CGI, HTML, etc.), persistance et
bases de données, interfaces graphiques.
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Critères de choix d’un langage de programmation
Etapes d’installation de Python
• Pour installer Python, il faut se rendre sur le site officiel (http://python.org/download/) afin de
télécharger un installateur.
Il en existe deux versions de Python : les versions 3.x.x et la version 2.x.x. Toutes sont
disponibles sur le site de Python, mais les possesseurs d'ordinateurs récents ont tout
intérêt à opter pour la version 3.x.x.
• Il faut veiller à prendre la version correspondant à l’architecture de la machine (x86
si l’on a une machine 32 bits ou x86_64 si l’on a une machine 64 bits).
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Critères de choix d’un langage de programmation
Etapes d’installation de Python
Après le téléchargement, il faut lancer l’exécutable et suivre les étapes suivantes :
• L’installation de Python génère l’installation d’une interface, appelée IDLE (Python GUI).
• Cette interface vous permet de saisir des instructions en ligne de commande mais également
d’exécuter des programmes Python enregistrés dans des fichiers.
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Critères de choix d’un langage de programmation
Caractéristiques de Python
Il suffit de cliquer sur IDLE (Python GUI) pour ouvrir l’interface graphique relative à interpréteur de
commandes en ligne.
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Critères de choix d’un langage de programmation
Caractéristiques de Python
Pour écrire un programme dans un fichier, aller dans le menu File :
• Sélectionnez New File
• Une nouvelle fenêtre s’ouvre
• Tapez votre programme Python dans cette fenêtre
• Pour exécuter votre programme, allez dans le menu Run et faites Run Modules
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Critères de choix d’un langage de programmation
Caractéristiques de Python
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Blocs d’instructions
Structuration et notion de bloc
• En Python, chaque instruction s'écrit sur une ligne sans mettre d'espace au début.
Exemple: a = 10
b=3
print(a, b)
• Ces instructions simples peuvent cependant être mises sur la même ligne en les séparant par
des points virgules (;), les lignes étant exécutées dans l'ordre de gauche à droite.
• La séparation entre les en-têtes qui sont des lignes de définition de boucles, de fonction, de
classe se terminent par les deux points (:)
• Le contenu ou « bloc » d'instructions correspondant se fait par indentation des lignes.
• Une indentation s'obtient par le bouton tab (pour tabulation) ou bien par 4 espaces successifs.
• L’ensemble des lignes indentées constitue un bloc d’instructions.
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Blocs d’instructions
Structuration et notion de bloc
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Conversion de l’algorithme en Python
Script et langage Python
• Peu de ponctuation.
• Pas de point virgule ";"
• Tabulation ou 4 espaces significatifs
• Scripts avec exécution d’un fichier ayant l’extension .py
Exemple: script.py
• Python utilise un identifiant pour nommer chaque objet
• Python n'offre pas la notion de variable, mais plutôt celle de référence (adresse)
d'objet
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Conversion de l’algorithme en Python
Script et langage Python
La valeur de
C reste 2
malgré le
changement
de la valeur
de b
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Conversion de l’algorithme en Python
Types de données
Les types de données les plus
utilisés sont :
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Conversion de l’algorithme en Python
Variables
• Une variable est créée au moment où vous lui attribuez une valeur pour la
première fois.
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Conversion de l’algorithme en Python
Variables
Les variables de chaîne peuvent être déclarées à l'aide de guillemets simples ou doubles :
Règles pour les variables Python:
o Un nom de variable doit commencer par une lettre ou le caractère de soulignement.
o Un nom de variable ne peut pas commencer par un nombre.
o Un nom de variable ne peut contenir que des caractères alphanumériques et des traits de
soulignement (A-z, 0-9 et _).
o Les noms de variable sont sensibles à la casse (age, Age et AGE sont trois variables
différentes) .
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Conversion de l’algorithme en Python
Variables
Python permet d'affecter des valeurs à plusieurs variables sur une seule ligne:
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Conversion de l’algorithme en Python
Variables d’entrée
• La fonction input() retourne une valeur qui correspond à ce que l'utilisateur a
entré. Cette valeur peut alors être assignée à une variable quelconque
• Input est une fonction qui renvoie toujours une chaîne de caractères
prénom=input("entrez votre nom: ")
print ("bonjour: ", prénom)
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Conversion de l’algorithme en Python
Variables d’entrée
Pour changer le type d’une variable, on utilise :
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Conversion de l’algorithme en Python
Variables de sortie
• La fonction print() de Python est souvent utilisée pour afficher des variables et
des chaines de caractères
• Pour combiner à la fois du texte et une variable, Python utilise le caractère +:
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Conversion de l’algorithme en Python
Variables de sortie
• Afin d’améliorer le langage Python, la communauté qui développe Python publie régulièrement des
guides appelés Python Enhancement Proposal (PEP) suivis d’un numéro.
• Il s’agit de propositions concrètes pour améliorer le code, ajouter de nouvelles fonctionnalités, mais
aussi des recommandations sur la manière d’utiliser Python, bien écrire du code, etc.
• On parle de code Pythonique lorsque ce dernier respecte les règles d’écriture définies par la
communauté Python mais aussi les règles d’usage du langage.
• Le guide de style PEP 8 est une des plus anciennes versions de PEP (les numéros sont croissants
avec le temps). Elle consiste en un nombre important de recommandations sur la syntaxe de
Python.
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Optimisation du code (bonnes pratiques de codage, commentaires, …)
Python Enhancement Proposal
Exemple :
Les fonctions gérant les nombres aléatoires avec random et les fonctions mathématiques avec
math. Python possède de nombreux autres modules internes (c’est-à-dire présents de base
lorsqu’on installe Python). import math
print(math.cos(math.pi/2))
print(math.sin(math.pi/2))
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Optimisation du code (bonnes pratiques de codage, commentaires, …)
Python Enhancement Proposal
• Les noms de variables, de fonctions et de modules doivent être
en minuscules avec un caractère « souligné » (« tiret du bas » ou
« underscore » en anglais) pour séparer les différents « mots »
dans le nom.
ma_variable
fonction_test_27()
mon_module
MA_CONSTANTE
VITESSE_LUMIERE
1.Transformer une suite d’étapes algorithmiques
en une suite d’instructions Python
Optimisation du code (bonnes pratiques de codage, commentaires, …)
Python Enhancement Proposal • Une ligne de code ne doit pas dépasser 79 caractères
• Le caractère \ permet de couper des lignes trop longues :
print("ATGCGTACAGTATCGATAAC"
... "ATGACTGCTACGATCGGATA"
... "CGGGTAACGCCATGTACATT")
• Une fonction est un bloc de code qui ne s'exécute que lorsqu'elle est appelée :
Vous pouvez transmettre des données, appelées paramètres, à une fonction
Une fonction peut renvoyer des données en conséquence.
Pour appeler une fonction, utilisez le nom de la fonction suivi de parenthèses
2. Manipuler les données
Manipulation des fonctions lambda
• Les informations peuvent être transmises aux fonctions comme paramètres/ arguments :
Les arguments sont spécifiés après le nom de la fonction, entre parenthèses.
Vous pouvez ajouter autant d'arguments que vous le souhaitez, séparez-les simplement
par une virgule.
Lorsqu'on définit une fonction def fct(x, y): les arguments x et y sont appelés arguments
positionnels.
2. Manipuler les données
Manipulation des fonctions lambda
• Il est possible de donner une valeur par défaut à un paramètre d’une fonction.
• Un argument défini avec une syntaxe def fct(arg=val): est appelé argument par mot-clé.
2. Manipuler les données
Manipulation des fonctions lambda
• Il est possible de faire un mélange d'arguments positionnels et par mot-clé. Ainsi les arguments
positionnels doivent toujours être placés avant les arguments par mot-clé :
2. Manipuler les données
Manipulation des fonctions lambda
Fonction Lambda
En Python, le mot clé lambda est utilisé pour déclarer une fonction anonyme (sans nom), raison
pour laquelle ces fonctions sont appelées « fonction lambda » :
• Une fonction lambda est comme n’importe quelle fonction Python normale, sauf qu’elle n’a pas
de nom lors de sa définition et qu’elle est contenue dans une ligne.
• Tout comme la définition d’une fonction normale par l’utilisateur à l’aide du mot clé « def », une
fonction lambda est définie à l’aide du mot clé « lambda ».
• Une fonction lambda peut avoir n nombre d’arguments mais une seule expression.
2. Manipuler les données
Manipulation des fonctions lambda
Fonction Lambda
2. Manipuler les données
Manipulation des fonctions lambda
Fonction Lambda
Exemple:
• Une liste est une collection qui est ordonnée, modifiable et qui peuvent contenir plusieurs fois
la même valeur.
• Une liste est déclarée par une série de valeurs (n'oubliez pas les guillemets, simples ou doubles,
s'il s'agit de chaînes de caractères) séparées par des virgules, et le tout encadré par des crochets .
• Parcourir une liste est possible en utilisant l’instruction for elem in liste où elem est l’élément de
la liste liste.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
• Vérifier si un élément elem est dans une liste Liste est possible en utilisant l’instruction : if elem
in Liste.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
• Fonction len(Liste) est une fonction permettant de retourner la longueur de la liste Liste.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
• Fonction append(élem) est une fonction qui permet d’ajouter un élément élem à la fin de liste.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
• Fonction insert(pos, élem) est une fonction qui permet d’ajouter un élément élem à une position
i de la liste .
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
• Fonction pop() est une fonction qui assure la suppression du dernier élément de la liste.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
• Fonction del(élem) est une fonction qui permet de supprimer un élément particulier élem dans
une liste.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
• Fonction extend(Liste) est une fonction qui permet de fusionner deux listes.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
• Fonction copy() est une fonction qui permet de copier le contenu d’une liste dans une autre.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
• Fonction clear() est une fonction qui permet de supprimer tous les éléments d’une liste.
• Fonction reverse() est une fonction qui permet d’inverser une liste.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
• Fonction sort() est une fonction qui permet de trier une liste.
• Fonction remove() est une fonction qui permet de supprimer un élément spécifique de la liste.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
L’opérateur indice [ ]:
• Une chaîne de caractères est une séquence de caractères.
• Un caractère de la chaîne est accessible par l’opérateur indice [ ].
• Le premier caractère a l’indice 0.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
• Un tuple est une collection ordonnée , non modifiable (contrairement à la liste qui est
modifiable) et qui peuvent contenir plusieurs fois la même valeur.
• En Python, les tuples ont écrits avec des crochets ronds.
• La fonction list(Tuple) permet de convertir le tuple Tuple en liste pour pouvoir le modifier.
• La fonction tuple(Liste) permet de convertir la liste Liste en tuple.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
• Un set est une collection non ordonnée, non indexée et non modifiables qui n’acceptent pas
de contenir plusieurs fois le même élément.
• En Python, les sets sont écrits avec des accolades.
Set={elem1,elem2,…..,elemn}
• Une fois qu'un ensemble est créé, vous ne pouvez pas modifier ses éléments (remplacer
des éléments par d’autres) , mais vous pouvez ajouter de nouveaux éléments ou
supprimer les éléments.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
• Les fonctions remove() et discard permettent la suppression d’un élément d’un set :
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
Tableaux statiques (set)
• La fonction pop() permet la suppression d’un élément aléatoire d’un set et retourne l’élément
supprimé
• La fonction clear() assure le suppression de tous les éléments d’un set (rendre un set
vide).
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
Autres méthodes :
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
Dictionnaires
• Un dictionnaire est une collection non ordonnée, modifiable et indexée.
• En Python, les dictionnaires sont écrits avec des accolades, et ils ont des clés et des valeurs
dictionnaire={clé1: val1, clé2:val2, clén:valn}
Dictionnaires
• Parcours d’un dictionnaire thisdict en utilisant l’instruction for x in thisdict où x est un élément
de thisdict.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
Dictionnaires
Dictionnaires
• La fonction items() permet de retourner les clés et les valeurs d’un dictionnaire à la fois.
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
Dictionnaires
Dictionnaires
Dictionnaires
Dictionnaires
• La fonction del() permet de supprimer d’un dictionnaire un élément ayant une clé particulière :
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
Dictionnaires
• La fonction pop() permet de supprimer un élément du dictionnaire ayant une clé particulière :
2. Manipuler les données
Listes, tuples, dictionnaires, ensembles (set)
Dictionnaires
Dictionnaires
Dictionnaires
• Python a plusieurs fonctions pour créer, lire, mettre à jour et supprimer des fichiers texte.
• La fonction clé pour travailler avec des fichiers en Python est open().
Elle prend deux paramètres; nom de fichier et mode.
Il existe quatre méthodes (modes) différentes pour ouvrir un fichier :
•"r" -Lecture -Par défaut. Ouvre un fichier en lecture, erreur si le fichier n'existe pas.
•"a" -Ajouter -Ouvre un fichier à ajouter du texte dedans, crée le fichier s'il n'existe pas.
•"w" -Écrire -Ouvre un fichier pour l'écriture, crée le fichier s'il n'existe pas.
•"x" -Créer -Crée le fichier spécifié, renvoie une erreur si le fichier existe.
2. Manipuler les données
Fichiers de données
Utilisation des fichiers
f = open("demofile.txt", "r")
print(f.read(5))
2. Manipuler les données
Fichiers de données
Utilisation des fichiers
f =open("demofile.txt","r")
print(f.readline()
2. Manipuler les données
Fichiers de données
Utilisation des fichiers
• Ecriture dans un fichier :
• Pour écrire dans un fichier existant, vous devez ajouter un paramètre à la fonction open():
f =open("demofile2.txt","a") #ouvrir le fichier en mode ajout c’est à dire il est possible d’ajouter du
texte dedans
f.write("Le fichier contient plus de texte") #ajouter la phrase “Le fichier contient plus de texte“
f.close() #fermer le fichier
f =open("demofile3.txt","w") #ouvrir le fichier en mode écriture en effaçant son ancien contenu
f.write("domage!! l’ancient contenu est supprimé“) #écrire la phrase domage!! l’ancient contenu est
supprimé“
f.close() #fermer le fichier
f =open("demofile3.txt","r")
print(f.read()) # ouvrir et lire le fichier après l'ajout
2. Manipuler les données
Fichiers de données
Utilisation des fichiers
• Le fichier Comma-separated values (CSV) est un format permettant de stocker des tableaux
dans un fichier texte. Chaque ligne est représentée par une ligne de texte et chaque colonne est
séparée par un séparateur (virgule, point-virgule, etc).
• Les champs texte peuvent également être délimités par des guillemets.
• Lorsqu'un champ contient lui-même des guillemets, ils sont doublés afin de ne pas être considérés
comme début ou fin du champ.
• Si un champ contient un signe pouvant être utilisé comme séparateur de colonne (virgule, point-
virgule, etc) ou comme séparateur de ligne, les guillemets sont donc obligatoires afin que ce signe
ne soit pas confondu avec un séparateur.
2. Manipuler les données
Fichiers de données
Format CSV
2. Manipuler les données
Fichiers de données
Format CSV
Il est également possible de lire les données et obtenir un dictionnaire par ligne contenant les
données en utilisant DictReader au lieu de reader.
2. Manipuler les données
Fichiers de données
Format CSV
• Python dispose d’une très riche bibliothèque de modules (classes (types d’objets), fonctions,
constantes, etc) étendant les capacités du langage dans de nombreux domaines : nouveaux types
de données, interactions avec le système, gestion des fichiers et des processus, protocoles de
communication (internet, mail, FTP, etc.),multimédia, etc.
• les fonctions de ce module ne peuvent pas être utilisées avec des nombres complexes. Pour cela,
il faudra plutôt utiliser les fonctions du module cmath.
• Le module math définit également des constantes mathématiques utiles comme pi ou le nombre de
Neper, accessibles via math.pi et math.e.
2. Manipuler les données
Bibliothèques standards
Le module random :
• random fournit des outils pour générer des nombres pseudo-aléatoires de différentes façons
• La fonction random() est la plus utilisée du module. Elle génère un nombre à virgule flottante
aléatoire de façon uniforme dans la plage semi-ouverte [0.0, 1.0).
• La fonction uniform() génère un nombre à virgule flottante aléatoire compris dans un
intervalle. Cette fonction a deux arguments : le premier nombre représente la borne basse de
l’intervalle tandis que le second représente la borne supérieure.