Algorithmie avec Python II
Boucles, conditions et fonctions
Antoine SYLVAIN
EFREI Paris
2023
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 1 / 25
Conditions
Contents
1 Conditions
2 Boucles
3 Fonctions
4 Exercices
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 2 / 25
Conditions
Opérateurs de comparaison
Le type bool est un type natif en Python. Une variable booléenne
peut avoir deux valeurs: True et False
Python possède une série d’opérateurs de comparaison qui retournent
des valeurs booléennes. Certains s’appliquent à des valeurs
numériques:
a == b
a !=b
a >b
a >= b
a <b
a <= b
Note: les opérateurs == et ! = fonctionnent avec la plupart des
types.
Le mot-clé in permet de savoir si un élément est présent dans un
ensemble. Par exemple: x in liste retourne True si x est dans la liste,
et False sinon.
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 3 / 25
Conditions
Opérateurs booléens
Il existe aussi des opérateurs booléens qui s’appliquent à des variables
booléennes:
Opérateur X=True, Y=True X=True, Y=False X=False, Y=False
X and Y True False False
X or Y True True False
not X False False True
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 4 / 25
Conditions
Conditions booléennes
if: suivi d’une variable ou d’une expression boolénne, permet de
n’exécuter le bloc de code qui suit que si, et uniquement si la
variable/expression booléenne est vraie.
elif: qui suit forcément un premier bloc if, fonctionne comme un
nouveau if, mais qui ne s’appliquera que si le précédent if (et les
précédents elif ) ne s’appliquaient pas (càd que leur condition
booléenne retournait False).
else: suit forcément un bloc if, et éventuellement un ou des blocs elif.
Il n’est pas suivi d’une condition booléenne, et ne s’exécute que si les
conditions booléennes des blocs précédents étaient toutes fausses.
Note: attention à l’indentation ! Les mots-clés elif et else doivent être
alignés au même niveau que le if auquel ils se rapportent. Le bloc de code
à exécuter si la condition est vraie doit être indenté de 4 espaces ou une
tabulation à droite du mot-clé auquel il se rapporte.
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 5 / 25
Conditions
Exemple de conditions booléennes
Que va retourner le code suivant ?
Que retournera-t-il si a = 10 ?
Que retournera-t-il si la condition elif est remplacée par un if ?
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 6 / 25
Conditions
Exercice
Quelles lignes peut-on retirer au code suivant sans modifier son
comportement ?
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 7 / 25
Boucles
Contents
1 Conditions
2 Boucles
3 Fonctions
4 Exercices
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 8 / 25
Boucles
Boucles
Il existe deux types de boucles en Python:
for: elle permet de parcourir des éléments, comme une liste, une
chaı̂ne de caractère ou une suite d’entiers croissante. Elle peut être
interrompue avec le mot-clé break
while: elle possède une condition d’arrêt, et s’exécute tant que cette
condition d’arrêt n’est pas satisfaite.
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 9 / 25
Boucles
Boucle for, exemple
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 10 / 25
Boucles
Boucle for, exemple
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 11 / 25
Boucles
Boucle while
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 12 / 25
Fonctions
Contents
1 Conditions
2 Boucles
3 Fonctions
4 Exercices
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 13 / 25
Fonctions
Fonctions
Une fonction est une suite d’instructions que l’on peut appeler avec
un nom
On la déclare avec le mot-clé def
Les instructions doivent être indentées
Elle peut prendre une ou plusieurs variables en paramètres
Elle peut retourner une ou des valeurs avec le mot-clé return
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 14 / 25
Fonctions
Exemple fonction
Fonction calculant l’algorithme d’Euclide original
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 15 / 25
Fonctions
Paramètres
Python est un langage qui offre beaucoup de flexibilité dans la définition
des paramètres d’une fonction:
Il est possible de donner une valeur par défaut à certains paramètres à
l’aide du signe =.
Il est possible de proposer à l’utilisateur d’entrer autant de paramètres
qu’il le souhaite et de les stocker dans une liste grâce au symbole ∗
De même, il est possible de proposer à l’utilisateur d’entrer autant de
paramètres qu’il le souhaite en les nommant, et de les stocker dans un
dictionnaire, grâce au symbole ∗∗
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 16 / 25
Fonctions
Exemple fonction
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 17 / 25
Fonctions
Exemple fonction
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 18 / 25
Fonctions
Exemple fonction
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 19 / 25
Exercices
Contents
1 Conditions
2 Boucles
3 Fonctions
4 Exercices
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 20 / 25
Exercices
Exercice I: Stats sur une liste
Dans cet exercice, vous devrez implémenter trois fonctions qui prennent en
entrée une liste de flottants. Dans vos fonctions, vous parcourerez la liste
à l’aide d’une boucle for.
Une fonction moyenne(liste) qui calcule la moyenne de liste passée en
entrée.
Une fonction maximum(liste) qui retourne le plus grand élément de la
liste passée en entrée.
Une fonction minimum(liste) qui retourne le plus petit élément de la
liste passée en entrée.
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 21 / 25
Exercices
Exercice II: Propriétés d’un nombre
Implémentez une fonction factorielle(n) qui prend en entrée un
Qn
nombre n et retourne la factorielle de ce nombre (n! = i)
i=1
Implémentez une fonction est premier(n) qui retourne True si n est un
nombre premier et False sinon
Appliquez vos fonctions à tous les nombres de 1 à 20.
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 22 / 25
Exercices
Exercice III: Xor
Le ou exclusif (ou xor) est un opérateur logique qui est vrai si un et
seulement un des opérandes est vrai (cf tableau ci-dessous).
X Y X xor Y
True True False
True False True
False True True
False False False
Implémentez la fonction xor(x,y) qui prend en entrée deux booléens x
et y et retourne leur xor.
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 23 / 25
Exercices
Exercice IV: Texte et mots
Soit un texte présenté sous la forme d’une chaı̂ne de caractères.
Implémentez une fonction nombre mots(texte) qui compte le nombre
de mots distincts présents dans le texte.
Implémentez une fonction mot plus frequent(texte) qui retourne le
mot le plus fréquent dans le texte. Si plusieurs mots sont premiers
ex-æquo en nombre d’occurrences, il suffit d’en retourner un au choix.
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 24 / 25
Exercices
Exercice facultatif: Listes
Soit une liste l, implémentez une fonction supprime doublons(l) qui
renvoie la liste l sans doublons.
Soient deux listes d’entiers triées l1 et l2 . Implémentez une fonction
fusion(l1 , l2 ) qui renvoie une liste triée contenant les éléments de l1 et
de l2 .
Antoine SYLVAIN (EFREI Paris) Algorithmie avec Python II Boucles, conditions et fonctions 2023 25 / 25