AlgoPython EFREI

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 25

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

Vous aimerez peut-être aussi