Langage de programmation
Python
Prof. Khaoula ADDAKIRI
Institut Supérieur des Sciences de la Santé
Octobre 2024
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 1
Langage de programmation Python
Introduction
Langage Python
❑ Le langage de programmation Python a été créé en 1989 par Guido van Rossum, aux
Pays-Bas.
❑ Ce langage de programmation présente de nombreuses caractéristiques intéressantes :
▪ Il est multiplateforme. C’est-à-dire qu’il fonctionne sur de nombreux systèmes
d’exploitation : Windows, Mac OS,…….
▪ 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 connaissance
sur le fonctionnement d’un ordinateur pour être utilisé.
▪ C’est un langage interprété. Un script Python n’a pas besoin d’être compilé
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 avec un certain nombre de règles de
fonctionnement et d’interactions.
▪ C’est le langage de programmation le plus utilisé au monde
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 2
Langage de programmation Python
Introduction
Environnement de développement
1. Installation de Python
▪ Selon le SE, télécharger le fichier d'installation de Python à l’URL
[Link]
▪ Installer Python sous Windows exécuter le fichier d'installation et suivre les étapes.
▪ L’exécution doit faire apparaître un prompt Python.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 3
Langage de programmation Python
Syntaxe du langage
Introduction
❑ La syntaxe du langage Python est simple, concise et terriblement efficace.
❑ Cette particularité a été dès le départ une volonté de Guido van Rossum, pour en
faire un langage le plus productif possible.
❑ Le code saisi est en général immédiatement fonctionnel et s’écrit sans hésitation.
❑ Cette facilité est d’autant plus prononcée que la syntaxe des structures
conditionnelles rapproche beaucoup Python du pseudo-code, ce qui nécessite moins
de réflexion sur la manière dont une portion de code doit être écrite, contrairement à
d’autres langages ou les temps d’arrêt dans l’écriture sont légion.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 4
Langage de programmation Python
Syntaxe du langage
Commentaires
❑ En Python, les commentaires sont préfixés par le caractère dièse (#), et peuvent être
placés en fin de ligne ou prendre une ligne complète.
Exemples
▪ # commentaire judicieux
▪ print("hello") # commentaire très à propos
▪ # oubliez le commentaire précédent
▪ # celui-ci est bien mieux
❑ L’interpréteur syntaxique ignore ces commentaires et considère que le caractère
dièse marque la fin d’une ligne logique.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 5
Langage de programmation Python
Syntaxe du langage
L’instruction print
❑ La fonction print() affiche l’argument qu’on lui passe entre parenthèses et un retour
à ligne.
❑ Ce retour à ligne supplémentaire est ajouté par défaut.
❑ Exemples
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 6
Langage de programmation Python
Syntaxe du langage
L’instruction print
▪ La commande print évalue une expression et affiche le résultat.
▪ Ce qui est vrai pour des phrases est aussi vrai pour des valeurs numériques, des
calculs ou tout autre élément interprétable, car l’instruction convertit
automatiquement le résultat de l’expression en une chaîne de caractère affichable,
lorsque c’est possible.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 7
Langage de programmation Python
Syntaxe du langage
▪
L’instruction print
▪ Il est également possible d’afficher le contenu de plusieurs variables(quel que soit leur
type) en les séparant par des virgules :
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 8
Langage de programmation Python
Syntaxe du langage
Les nombres
❑ L'interpréteur agit comme une simple calculatrice : vous pouvez lui entrer une
expression et il vous affiche la valeur.
❑ La syntaxe des expressions est simple : les opérateurs +, -, * et / peuvent être utilisés
pour effectuer des calculs arithmétiques ; les parenthèses (()) peuvent être utilisées
pour faire des regroupements.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 9
Langage de programmation Python
Syntaxe du langage
Les nombres
❑ Les nombres entiers (comme 2, 4, 20) sont de type int, alors que les décimaux
(comme 5.0, 1.6) sont de type float.
❑ Les divisions (/) donnent toujours des float. L'opérateur // pour effectuer une division
entière et donc obtenir un résultat entier. Pour obtenir le reste d’une division entière,
utilisez l'opérateur %
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 10
Langage de programmation Python
Syntaxe du langage
Les nombres
❑ Il existe des opérateurs « combinés » qui effectue une opération et une affectation en
une seule étape :
❑ L’opérateur += effectue une addition puis affecte le résultat à la même variable. Cette
opération s’appelle une «incrémentation ».
❑ Les opérateurs-=, *= et /= se comportent de manière similaire pour la soustraction, la
multiplication et la division.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 11
Langage de programmation Python
Syntaxe du langage
Les nombres
❑ En Python, il est possible de calculer des puissances avec l'opérateur **
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 12
Langage de programmation Python
Syntaxe du langage
Les nombres
❑ En Python, la déclaration d’une variable et son initialisation (c’est-à-dire la première
valeur que l’on va stocker dedans) se font en même temps.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 13
Langage de programmation Python
Syntaxe du langage
Les nombres
❑ En mode interactif, la dernière expression affichée est affectée à la variable _. Ainsi,
lorsque vous utilisez Python comme calculatrice, cela vous permet de continuer des
calculs facilement.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 14
Langage de programmation Python
Syntaxe du langage
Les chaînes de caractères
▪ Python reconnaît certains types de variables automatiquement (entier, float).
▪ Cependant, pour une chaîne de caractères(string ou str), il faut l’entourer de
guillemets (doubles, ou simples) afin d’indiquer à Python le début et la fin de la
chaîne de caractères.
▪ Dans l’interpréteur, l’affichage direct du contenu d’une chaîne de caractères se fait
avec des guillemets simples, quel que soit le type de guillemets utilisé pour définir
la chaîne de caractères.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 15
Langage de programmation Python
Syntaxe du langage
Les chaînes de caractères
▪ Pour les chaînes de caractères, deux opérations sont possibles, l’addition et la
multiplication :
▪ L’opérateur d’addition + concatène (assemble) deux chaînes de caractères. On
parle de concaténation.
▪ L’opérateur de multiplication * entre un nombre entier et une chaîne de caractères
duplique (répète) plusieurs fois une chaîne de caractères. On parle de duplication.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 16
Langage de programmation Python
Syntaxe du langage
Les chaînes de caractères
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 17
Langage de programmation Python
Syntaxe du langage
La fonction type()
▪ Si vous ne vous souvenez plus du type d’une variable, utilisez la fonction type()qui
vous le rappellera.
▪ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 18
Langage de programmation Python
Syntaxe du langage
Conversion de types
▪ En programmation, on est souvent amené à convertir les types, c’est-à-dire passer
d’un type numérique à une chaîne de caractères ou vice-versa. En Python, rien de
plus simple avec les fonctions int(),float() et str().
▪ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 19
Langage de programmation Python
Syntaxe du langage
Minimum et maximum
▪ Python propose les fonctions min() et max() qui renvoient respectivement le
minimum et le maximum de plusieurs entiers ou floats :
▪ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 20
Langage de programmation Python
Syntaxe du langage
Affichage (Ecriture formatée et f-strings)
❑ L’écriture formatée est un mécanisme permettant d’afficher des variables avec un
format précis, par exemple justifiées à gauche ou à droite, ou encore avec un
certain nombre de décimales pour les floats. L’écriture formatée est incontournable
lorsqu’on veut créer des fichiers organisés en « belles colonnes ».
❑ f-string est le diminutif de formatted string literals. Nous avons vu les chaînes de
caractères ou encore strings qui étaient représentées par un texte entouré de
guillemets simples ou doubles.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 21
Langage de programmation Python
Syntaxe du langage
Affichage (Ecriture formatée et f-strings)
❑ Les f-strings permettent une meilleure organisation de l’affichage des variables.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 22
Langage de programmation Python
Syntaxe du langage
Affichage (Expressions dans les f-strings)
❑ Une fonctionnalité extrêmement puissante des f-strings est de supporter des
expressions Python au sein des accolades. Ainsi, il est possible d’y mettre
directement une opération ou encore un appel à une fonction.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 23
Langage de programmation Python
Syntaxe du langage
Ecriture scientifique
❑ Pour les nombres très grands ou très petits, l’écriture formatée permet d’afficher un
nombre en notation scientifique (sous forme de puissance de 10) avec la lettre e.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 24
Langage de programmation Python
Syntaxe du langage
Ecriture scientifique
❑ Il est également possible de définir le nombre de chiffres après la virgule. Dans
l’exemple ci-dessous, on affiche un nombre avec aucun, 3 et 6 chiffres après la
virgule.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 25
Langage de programmation Python
Syntaxe du langage
Exercice
❑ En utilisant l’écriture formatée, affichez en une seule ligne les variables a, b et c
dont les valeurs sont respectivement la chaîne de caractères "salut", le nombre
entier 102 et le float 10.318. La variable c sera affichée avec deux décimales.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 26
Langage de programmation Python
Listes
Définition
▪ Une liste est une structure de données qui contient une collection d’objets Python.
▪ Il s’agit d’un nouveau type par rapport aux entiers, float, booléens et chaînes de
caractères que nous avons vus jusqu’à maintenant.
▪ On parle aussi d’objet séquentiel en ce sens qu’il contient une séquence d’autres
objets
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 27
Langage de programmation Python
Listes
Définition
▪ Python autorise la construction de liste contenant des valeurs de types différents
(par exemple entier et chaîne de caractères), ce qui leur confère une grande
flexibilité.
▪ Une liste est déclarée par une série de valeurs séparées par des virgules, et le tout
encadré par des crochets.
▪ Exemples
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 28
Langage de programmation Python
Listes
Utilisation
▪ Un des gros avantages d’une liste est que vous accédez à ses éléments par leur
position. Ce numéro est appelé indice (ou index) de la liste.
▪ Soyez très attentif au fait que les indices d’une liste de n éléments commencent à 0
et se terminent à n−1.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 29
Langage de programmation Python
Listes
Opération sur les listes
▪ Tout comme les chaînes de caractères, les listes supportent l’opérateur + de
concaténation, ainsi que l’opérateur * pour la duplication.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 30
Langage de programmation Python
Listes
Opération sur les listes
▪ Nous allons créer une liste vide:
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 31
Langage de programmation Python
Listes
Opération sur les listes
▪ Ajouter deux éléments, l’un après l’autre, d’abord avec la concaténation puis avec
la mé[Link]().
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 32
Langage de programmation Python
Listes
Opération sur les listes
▪ Tranches
▪ Un autre avantage des listes est la possibilité de sélectionner une partie d’une liste
en utilisant un indiçage construit sur le modèle [m:n+1] pour récupérer tous les
éléments(de l’élément m inclu à l’élément n+1 exclu). On dit alors qu’on récupère
une tranche de la liste.
▪ Exemple :
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 33
Langage de programmation Python
Listes
Opération sur les listes
Tranches
▪ L’accès au contenu d’une liste fonctionne sur le modèle liste[début:fin:pas].
▪ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 34
Langage de programmation Python
Listes
Opération sur les listes
Fonction len()
▪ L’instruction len() vous permet de connaître la longueur d’une liste, c’est-à-dire le
nombre d’éléments que contient la liste.
▪ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 35
Langage de programmation Python
Listes
Opération sur les listes
Les fonctions range() et list()
▪ L’instruction range() est une fonction spéciale en Python qui génère des nombres
entiers compris dans un intervalle.
▪ Lorsqu’elle est utilisée en combinaison avec la fonction list(),on obtient une liste
d’entiers.
▪ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 36
Langage de programmation Python
Listes
Opération sur les listes
Listes de listes
▪ Il est tout à fait possible de construire des listes de listes. Cette fonctionnalité peut
parfois être très pratique.
▪ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 37
Langage de programmation Python
Listes
Opération sur les listes
Minimum, maximum et somme d’une liste
▪ Les fonctions min(), max() et sum() renvoient respectivement le minimum, le
maximum et la somme d’une liste passée en argument.
▪ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 38
Langage de programmation Python
Listes
Opération sur les listes
Exercice
Affichez la table de multiplication par 9 en une seule commande avec les instructions
range() et list().
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 39
Langage de programmation Python
Listes
Opération sur les listes
On peut utiliser Python pour des tâches plus compliquées que d'additionner deux et
deux. Par exemple, on peut écrire le début de la suite de Fibonacci comme ceci :
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 40
Langage de programmation Python
Boucles et comparaisons
Introduction
❑ En programmation, on est souvent amené à répéter plusieurs fois une instruction.
Incontournables à tout langage de programmation, les boucles vont nous aider à
réaliser cette tâche répétitive de manière compacte et efficace.
❑ Imaginez par exemple que vous souhaitiez afficher les éléments d’une liste les uns
après les autres. Il faudrait taper:
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 41
Langage de programmation Python
Boucles et comparaisons
La boucle for
❑ Si votre liste ne contient que 4 éléments, ceci est encore faisable mais imaginez
qu’elle en contienne 100 voire 1 000!
❑ Pour remédier à cela, il faut utiliser les boucles .
❑ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 42
Langage de programmation Python
Boucles et comparaisons
La boucle for
❑ La variable animal est appelée variable d’itération , elle prend successivement les
différentes valeurs de la liste animaux à chaque itération de boucle.
❑ Une fois la boucle terminée, cette variable d’itération animal n’est pas détruite et
conserve la dernière valeur de la liste animaux (ici la chaîne de caractères "souris").
❑ D’ores et déjà, prêtez attention au caractère deux-points « : » à la fin de la ligne
débutant par for. Cela signifie que la boucle for attend un bloc d’instructions, en
l’occurrence toutes les instructions que Python répétera à chaque itération de la
boucle. On appelle ce bloc d’instructions le corps de la boucle.
❑ Comment indique-t-on à Python où ce bloc commence et se termine? Cela est
signalé uniquement par l’indentation, c’est-à-dire le décalage vers la droite de la (ou
des) ligne(s) du bloc d’instructions.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 43
Langage de programmation Python
Boucles et comparaisons
La boucle for
❑ Dans l’exemple suivant, le corps de la boucle contient deux instructions (ligne 3 et
ligne 4) car elles sont indentées par rapport à la ligne débutant par for.
❑ La ligne 5 ne fait pas partie du corps de la boucle car elle est au même niveau que le
for (c’est-à-dire non indentée par rapport au for).
❑ Notez également que chaque instruction du corps de la boucle doit être indentée de la
même manière (ici 4 espaces).
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 44
Langage de programmation Python
Boucles et comparaisons
La boucle for
❑ Dans les exemples ci-dessus, nous avons exécuté une boucle en itérant directement
sur une liste. Une tranche d’une liste étant elle-même une liste, on peut également
itérer dessus :
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 45
Langage de programmation Python
Boucles et comparaisons
La boucle for
❑ On a vu que les boucles for pouvaient utiliser une liste contenant des chaînes de
caractères, mais elles peuvent tout aussi bien utiliser des listes contenant des entiers
(ou n’importe quel type de variable) :
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 46
Langage de programmation Python
Boucles et comparaisons
Introduction
❑ Fonction range()
❑ Python possède la fonction range() que nous avons rencontrée précédemment,
pratique pour faire une boucle sur une liste d’entiers de manière automatique :
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 47
Langage de programmation Python
Boucles et comparaisons
La boucle for
❑ Itération sur les indices ou les éléments
❑ Revenons à notre liste animaux. Nous allons maintenant parcourir cette liste, mais
cette fois par une itération sur ses indices :
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 48
Langage de programmation Python
Boucles et comparaisons
La boucle for
❑ Itération sur les indices ou les éléments
❑ Revenons à notre liste animaux. Nous allons maintenant parcourir cette liste, mais
cette fois par une itération sur ses indices :
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 49
Langage de programmation Python
Boucles et comparaisons
La boucle for
❑ Itération sur les indices ou les éléments
❑ Toutefois, il se peut qu’au cours d’une boucle vous ayez besoin des indices, auquel
cas vous devrez itérer sur les indices :
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 50
Langage de programmation Python
Boucles et comparaisons
Introduction
❑ Itération sur les indices ou les éléments
❑ Python possède la fonction enumerate() qui vous permet d’itérer sur les indices et
les éléments eux-mêmes :
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 51
Langage de programmation Python
Boucles et comparaisons
Comparaisons
❑ Python est capable d’effectuer toute une série de comparaisons entre le contenu de
deux variables, telles que :
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 52
Langage de programmation Python
Boucles et comparaisons
Comparaisons
❑ Exemples
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 53
Langage de programmation Python
Boucles et comparaisons
Comparaisons
❑ On peut également effectuer des comparaisons sur des chaînes de caractères.
❑ Dans le cas des chaînes de caractères, a priori seuls les tests == et != ont un sens. En
fait, on peut aussi utiliser les opérateurs < ,> ,<= et >=. Dans ce cas, l’ordre
alphabétique est pris en compte,
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 54
Langage de programmation Python
Boucles et comparaisons
Boucles while
❑ Une alternative à l’instruction for couramment utilisée en informatique est la boucle
while. Avec ce type de boucle, une série d’instructions est exécutée tant qu’une
condition est vraie.
❑ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 55
Langage de programmation Python
Boucles et comparaisons
Boucles while
❑ Une boucle while nécessite généralement trois éléments pour fonctionner
correctement :
1. Initialisation de la variable d’itération avant la boucle (ligne 1).
2. Test de la variable d’itération associée à l’instruction while (ligne 2).
3. Mise à jour de la variable d’itération dans le corps de la boucle (ligne 4).
❑ Faites bien attention aux tests et à l’incrémentation que vous utilisez, car une erreur
mène souvent à des « boucles infinies » qui ne s’arrêtent jamais.
❑ Vous pouvez néanmoins toujours stopper l’exécution d’un script Python à l’aide de
la combinaison de touches Ctrl-C (c’est-à-dire en pressant simultanément les touches
Ctrl et C).
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 56
Langage de programmation Python
Boucles et comparaisons
Boucles while
❑ Une boucle while nécessite généralement trois éléments pour fonctionner
correctement :
1. Initialisation de la variable d’itération avant la boucle (ligne 1).
2. Test de la variable d’itération associée à l’instruction while (ligne 2).
3. Mise à jour de la variable d’itération dans le corps de la boucle (ligne 4).
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 57
Langage de programmation Python
Boucles et comparaisons
Boucles while
❑ Faites bien attention aux tests et à l’incrémentation que vous utilisez, car une erreur
mène souvent à des « boucles infinies » qui ne s’arrêtent jamais.
❑ Vous pouvez néanmoins toujours stopper l’exécution d’un script Python à l’aide de la
combinaison de touches Ctrl-C (c’est-à-dire en pressant simultanément les touches
Ctrl et C).
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 58
Langage de programmation Python
Boucles et comparaisons
Boucles while
❑ La boucle while combinée à la fonction input() peut s’avérer commode lorsqu’on
souhaite demander à l’utilisateur une valeur numérique.
❑ La fonction input() prend en argument un message (sous la forme d’une chaîne de
caractères), demande à l’utilisateur d’entrer une valeur et renvoie celle-ci sous forme
d’une chaîne de caractères, qu’il faut ensuite convertir en entier (avec la fonction
int() ligne 4).
❑ Si on reprend les trois éléments d’une boucle while, on trouve l’initialisation de la
variable d’itération en ligne 1, le test de sa valeur en ligne 2, et sa mise à jour en
ligne 4
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 59
Langage de programmation Python
Boucles et comparaisons
Exercice
Soit la liste ["vache", "souris", "levure", "bacterie"]. Affichez l’ensemble des éléments de
cette liste (un élément par ligne) de trois façons différentes (deux méthodes avec for et
une avec while).
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 60
Langage de programmation Python
Boucles et comparaisons
Exercice
Constituez une liste semaine contenant les 7 jours de la semaine.
Ecrivez une série d’instructions affichant les jours de la semaine (en utilisant une boucle
for), ainsi qu’une autre série d’instructions affichant les jours du week-end (en utilisant
une boucle while).
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 61
Langage de programmation Python
Boucles et comparaisons
Exercice
Avec une boucle, affichez les nombres de 1 à 10 sur une seule ligne.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 62
Langage de programmation Python
Boucles et comparaisons
Exercice
Soit impairs la liste de nombres [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21].
Ecrivez un programme qui, à partir de la liste impairs, construit une liste pairs dans
laquelle tous les éléments de impairs sont incrémentés de 1.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 63
Langage de programmation Python
Boucles et comparaisons
Exercice
Voici les notes d’un étudiant [14, 9, 6, 8, 12]. Calculez la moyenne de ces notes. Utilisez
l’écriture formatée pour afficher la valeur de la moyenne avec deux décimales.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 64
Langage de programmation Python
Boucles et comparaisons
Exercice
▪ Avec les fonctions list() et range(), créez la liste entiers contenant les nombres entiers
pairs de 2 à 20 inclus.
▪ Calculez ensuite le produit des nombres consécutifs deux à deux de entiers en
utilisant une boucle. Exemple pour les premières itérations :
8
24
48
….
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 65
Langage de programmation Python
Boucles et comparaisons
Exercice
▪ Créez un script qui dessine un triangle comme celui-ci :
*
**
***
****
*****
******
*******
********
*********
**********
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 66
Langage de programmation Python
Tests
Introduction
▪ Les tests sont un élément essentiel à tout langage informatique si on veut lui donner
un peu de complexité car ils permettent à l’ordinateur de prendre des décisions.
▪ Pour cela, Python utilise l’instruction if ainsi qu’une comparaison que nous avons
abordée au chapitre précédent.
▪ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 67
Langage de programmation Python
Tests
Introduction
Il y a plusieurs remarques à faire concernant ces deux exemples :
▪ Dans le premier exemple, l’instruction print("Le test est vrai !") est exécutée, car le
test est vrai. Dans le second exemple, le test est faux et rien n’est affiché.
▪ Les blocs d’instructions dans les tests doivent forcément être indentés comme pour
les boucles for et while. L’indentation indique la portée des instructions à exécuter si
le test est vrai.
▪ Comme avec les boucles for et while, la ligne qui contient l’instruction if se termine
par le caractère deux-points « : ».
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 68
Langage de programmation Python
Tests
Tests à plusieurs cas
▪ Il est pratique de tester si la condition est vraie ou si elle est fausse dans une même
instruction if. Plutôt que d’utiliser deux instructions if, on peut se servir des
instructions if et else
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 69
Langage de programmation Python
Tests
Tests à plusieurs cas
▪ l’instruction elif, forme contractée de else if pour « sinon, si » permet d’imbriquer une
série de structures de type if : chaque condition est testée, et en cas de résultat négatif,
l’instruction suivante est à son tour évaluée.
▪ Ce principe permet de mettre en place des structures équivalentes au switch en C .
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 70
Langage de programmation Python
Tests
Importance de l’indentation
▪ Faites bien attention à l’indentation! Vous devez être très rigoureux sur ce point. Pour
vous en convaincre, exécutez ces deux exemples de code:
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 71
Langage de programmation Python
Tests
Tests multiples
▪ Les tests multiples permettent de tester plusieurs conditions en même temps en
utilisant des opérateurs booléens.
▪ Les deux opérateurs les plus couramment utilisés sont OU et ET. Voici un petit rappel
sur le fonctionnement de l’opérateur OU et ET.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 72
Langage de programmation Python
Tests
Tests multiples
▪ En Python, on utilise le mot réservé and pour l’opérateur ET et le mot réservé or
pour l’opérateur OU.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 73
Langage de programmation Python
Tests
Instructions break et continue
▪ Ces deux instructions modifient le comportement d’une boucle (for ou while) avec un
test.
▪ L’instruction break stoppe la boucle en cours.
▪ L’instruction continue saute à l’itération suivante, sans exécuter la suite du bloc
d’instructions de la boucle.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 74
Langage de programmation Python
Tests
Exercice
❑ Constituez une liste semaine contenant le nom des sept jours de la semaine. En
utilisant une boucle, écrivez chaque jour de la semaine ainsi que les messages
suivants :
▪ Au travail s’il s’agit du lundi au jeudi;
▪ Chouette c'est vendredi s’il s’agit du vendredi;
▪ Repos ce week-end s’il s’agit du samedi ou du dimanche.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 75
Langage de programmation Python
Tests
Exercice
❑ La fonction min() de Python renvoie l’élément le plus petit d’une liste constituée de
valeurs numériques ou de chaînes de caractères. Sans utiliser cette fonction, créez un
script qui détermine le plus petit élément de la liste [8, 4, 6, 1, 5].
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 76
Langage de programmation Python
Tests
Exercice
❑ Voici les notes d’un étudiant : 14, 9, 13, 15 et 12. Créez un script qui affiche la note
maximum (utilisez la fonction max()), la note minimum (utilisez la fonction min()) et
qui calcule la moyenne.
❑ Affichez la valeur de la moyenne avec deux décimales. Affichez aussi la mention
obtenue sachant que la mention est « passable » si la moyenne est entre 10 inclus et
12 exclus, « assez bien » entre 12 inclus et 14 exclus et « bien » au-delà de 14.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 77
Langage de programmation Python
Tests
Exercice
❑ Construisez une boucle qui parcourt les nombres de 0 à 20 et qui affiche les nombres
pairs inférieurs ou égaux à 10 d’une part, et les nombres impairs strictement
supérieurs à 10 d’autre part.
❑ Pour cet exercice, vous pourrez utiliser l’opérateur modulo % qui renvoie le reste de
la division entière entre deux nombres
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 78
Langage de programmation Python
Fonctions
Introduction
❑ En programmation, les fonctions sont très utiles pour réaliser plusieurs fois la même
opération au sein d’un programme.
❑ Elles rendent également le code plus lisible et plus clair en le fractionnant en blocs
logiques.
❑ Vous connaissez des fonctions internes à Python comme range() ou len().
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 79
Langage de programmation Python
Fonctions
Introduction
❑ Par exemple, si vous appelez la fonction len() de la manière suivante :len([0, 1, 2])
1. vous appelez len() en lui passant une liste en argument (ici la liste [0, 1, 2]);
2. la fonction calcule la longueur de cette liste;
3. elle vous renvoie un entier égal à cette longueur.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 80
Langage de programmation Python
Fonctions
Définition
❑ Pour définir une fonction, Python utilise le mot-clé def. Si on souhaite que la fonction
renvoie quelque chose, il faut utiliser le mot-clé return.
❑ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 81
Langage de programmation Python
Fonctions
Définition
❑ La syntaxe de def utilise les deux-points comme les boucles for et while ainsi que les
tests if : un bloc d’instructions est donc attendu.
❑ De même que pour les boucles et les tests, l’indentation de ce bloc d’instructions
(qu’on appelle le corps de la fonction) est obligatoire.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 82
Langage de programmation Python
Fonctions
Définition
❑ Ici, le résultat renvoyé par la fonction est stocké dans la variable res. Notez qu’une
fonction ne prend pas forcément un argument et ne renvoie pas forcément une valeur,
❑ Exemple : la fonction hello() se contente d’afficher la chaîne de caractères "bonjour" à
l’écran. Elle ne prend aucun argument et ne renvoie rien.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 83
Langage de programmation Python
Fonctions
Passage d’arguments
❑ Le nombre d’arguments que l’on peut passer à une fonction est variable. Nous
avons vu ci-dessus des fonctions auxquelles on passait zero ou un argument.
❑ Dans les chapitres précédents, nous avons rencontré des fonctions internes à Python
qui prenaient au moins deux arguments. Par exemple range(1, 10) ou encore
range(1,10, 2). Le nombre d’arguments est donc laissé libre à l’initiative du
programmeur qui développe une nouvelle fonction.
❑ Une particularité des fonctions en Python est que vous n’êtes pas obligé de préciser
le type des arguments que vous lui passez, dès lors que les opérations que vous
effectuez avec ces arguments sont valides. Python est en effet connu comme étant un
langage au « typage dynamique », c’est-à-dire qu’il reconnaît pour vous le type des
variables au moment de l’exécution.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 84
Langage de programmation Python
Fonctions
Passage d’arguments
❑ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 85
Langage de programmation Python
Fonctions
Renvoi de résultat
❑ Un énorme avantage en Python est que les fonctions sont capables de renvoyer
plusieurs objets à la fois, comme dans cette fraction de code :
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 86
Langage de programmation Python
Fonctions
Renvoi de résultat
❑ En réalité Python ne renvoie qu’un seul objet, mais celui-ci peut être séquentiel,
c’est-à-dire contenir lui-même d’autres objets. Exemple: Python renvoie un objet de
type tuple(il s’agit d’une sorte de liste avec des propriétés différentes). Notre fonction
pourrait tout autant renvoyer une liste :
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 87
Langage de programmation Python
Fonctions
Renvoi de résultat
❑ Renvoyer une liste de deux éléments(ou plus) est très pratique en conjonction avec
l’affectation multiple.
❑ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 88
Langage de programmation Python
Fonctions
Renvoi de résultat
❑ Une fonction peut aussi renvoyer un booléen.
❑ Exemple
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 89
Langage de programmation Python
Fonctions
Renvoi de résultat
❑ Une fonction peut aussi renvoyer un booléen.
❑ Comme la fonction renvoie un booléen, on peut utiliser la notation if
est_pair(chiffre):qui équivaut à if est_pair(chiffre)==True.
❑ Il est courant d’appeler une fonction qui renvoie un booléen est_quelquechose() car
on comprend que ça pose la question si c’est vrai ou faux.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 90
Langage de programmation Python
Fonctions
Arguments positionnels et arguments par mot-clé
❑ Jusqu’à maintenant, nous avons systématiquement passé le nombre d’arguments que
la fonction attendait. Que se passe-t-il si une fonction attend deux arguments et que
nous ne lui en passons qu’un seul?
❑ On constate que passer un seul argument à une fonction qui en attend deux conduit à
une erreur.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 91
Langage de programmation Python
Fonctions
Arguments positionnels et arguments par mot-clé
❑ Lorsqu’on définit une fonction def fct(x,y): les arguments x et y sont appelés
arguments positionnels. Il est strictement obligatoire de les préciser lors de l’appel de
la fonction. De plus, il est nécessaire de respecter le même ordre lors de l’appel que
dans la définition de la fonction.
❑ Dans l’exemple ci-dessus,2 correspondra à x et 3 correspondra à y .Finalement, tout
dépendra de leur position, d’où leur qualification de positionnel.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 92
Langage de programmation Python
Fonctions
Arguments positionnels et arguments par mot-clé
❑ Un argument défini avec une syntaxe def fct(arg=val): est appelé argument par mot-
clé.
❑ Le passage d’un tel argument lors de l’appel de la fonction est facultatif .
❑ Ce type d’argument ne doit pas être confondu avec les arguments positionnels
présentés ci-dessus, dont la syntaxe est def fct(arg).
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 93
Langage de programmation Python
Fonctions
Arguments positionnels et arguments par mot-clé
❑ Il est bien sûr possible de passer plusieurs arguments par mot-clé:
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 94
Langage de programmation Python
Fonctions
Arguments positionnels et arguments par mot-clé
❑ Que se passe-t-il lorsque nous avons un mélange d’arguments positionnels et par mot-
clé? Et bien les arguments positionnels doivent toujours être placés avant les
arguments par mot-clé.
❑ On peut toujours passer les arguments par mot-clé dans un ordre arbitraire à partir du
moment où on précise leur nom. Cependant, si les deux arguments positionnels a et b
ne sont pas passés à la fonction, Python renvoie une erreur.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 95
Langage de programmation Python
Fonctions
Variables locales et variables globales
❑ Lorsqu’on manipule des fonctions, il est essentiel de bien comprendre comment se
comportent les variables.
❑ Une variable est dite locale lorsqu’elle est créée dans une fonction. Elle n’existera et
ne sera visible que lors de l’exécution de ladite fonction.
❑ Une variable est dite globale lorsqu’elle est créée dans le programme principal. Elle
sera visible partout dans le programme.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 96
Langage de programmation Python
Fonctions
Exercices
❑ La factorielle d'un nombre entier positif 𝑛 , notée 𝑛!, est le produit de tous les entiers
de 1 à 𝑛. Par exemple :
▪ 4!=4×3×2×1=24
▪ 5!=5×4×3×2×1=120
❑ Ecrire une fonction calc_factorielle(n) qui prend en entrée un entier 𝑛 et retourne la
valeur de 𝑛!.
❑ Dans le programme principal, testez la fonction avec les valeurs 𝑛=4 et 𝑛=10 et
affichez le résultat pour chaque cas.
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 97
Langage de programmation Python
Fonctions
Exercices
❑ Créez une fonction calc_puissance(x, y) qui renvoie 𝑥 𝑦 en utilisant l’opérateur**.
❑ Dans le programme principal, calculez et affichez à l’écran 2ⅈavec i variant de 0 à 20
inclus. On souhaite que le résultat soit présenté avec le formatage suivant :
Khaoula ADDAKIRI (ISSS) Langage de programmation Octobre 2024 | 98