Instructions conditionnelles#
Une instruction conditionnelle est composée d'une condition puis d'un
bloc d'instructions. La condition est une expression ou une variable logique
évaluée par True
ou False
. Le bloc d'instructions s'exécute seulement si la
condition est vérifiée.
Opérateurs de comparaison#
Les opérateurs de comparaison permettent de comparer deux valeurs entre elles. Le résultat de la comparaison est de type booléen: True ou False.
Opérateur |
Nom |
Exemple |
Résultat |
---|---|---|---|
== |
égal à |
3 == 7 |
False |
!= |
différent de |
3 != 7 |
True |
> |
plus grand que |
3 > 7 |
False |
< |
plus petit que |
3 < 7 |
True |
>= |
plus grand ou égal à |
3 >= 7 |
False |
<= |
plus petit ou égal à |
3 <= 7 |
True |
Exercice 18#
Est-ce que les expressions suivantes sont True
(vrai) ou False
(faux)?
1 + 1 == 2
2 * 3 == 3
2 + 3 != 4
14 >= 15
2 ** 3 == 6
13 >= 13
Exemple 4 (if)#
Le bloc d'instructions ne sera exécuté que si la condition est vraie.

print("Début")
meteo = "soleil"
print("Je mets ma veste.")
if meteo == "pluie":
print("Je prends un parapluie.")
print("Je pars.")
print("Fin")
Dans l'exemple ci-dessus, il ne se passe rien, la condition n'est pas vérifiée.
Changez la valeur de la variable meteo
en "pluie". Que se passe-t-il?
Exemple 5 (if ... else)#
Le bloc d'instructions après le if
sera exécuté si la condition est vraie,
sinon ce sera le bloc d'instructions du else
qui sera exécuté.

moyenne = 5
print("La moyenne est de", moyenne)
if moyenne >= 4:
print("Moyenne suffisante")
else:
print("Moyenne insuffisante")
print("Pour réussir, il faut travailler!")
Dans l'exemple ci-dessus, soit la moyenne est suffisante (moyenne supérieure ou
égale à 4), soit elle est insuffisante (moyenne inférieure à 4). Il n'y a pas
d'autres possibilités. Changez la valeur de la variable moyenne
en 3. Que se
passe-t-il?
Exemple 6 (if ... elif ... else)#
Certaines situations nécessitent de distinguer plus qu'un ou deux cas.

type_film = "comédie"
print("Le type de film est", type_film)
if type_film == "action":
print("Explosions et des cascades de folie!")
elif type_film == "comédie":
print("Mort de rire!")
elif type_film == "horreur":
print("Terrifiant!")
else:
print("Je ne connais pas.")
print("Bonne séance de cinéma!")
Dans l'exemple ci-dessus, il y a le choix entre trois types de films (action,
comédie et horreur). Le branchement else
gérera tous les autres cas. Remplacer
la valeur de la variable type_film
par "action", "horreur" ou "drame". Que se
passe-t-il?
Exercice 19#
Écrivez l'algorithme suivant en Python:
Demander à l'utilisateur d'entrer un nombre positif
Sauvegarder la valeur dans la variable a
Si a est plus petit que 0 alors
écrire "Ce nombre n'est pas positif."
a = float(input("Entrez un nombre positif: "))
# Complétez le programme ici
Solution
1a = float(input("Entrez un nombre positif: "))
2if a < 0:
3 print("Ce nombre n'est pas positif.")
Exercice 20#
Écrivez l'algorithme suivant en Python:
Demander à l'utilisateur d'entrer la valeur de a
Sauvegarder la valeur dans la variable a
Demander à l'utilisateur d'entrer la valeur de b
Sauvegarder la valeur dans la variable b
Si a est plus petit que b alors
écrire "a est plus petit que b"
Sinon
écrire "a est plus grand que b"
# Écrivez le programme ici
Solution
1a = float(input("Valeur de a: "))
2b = float(input("Valeur de b: "))
3if a < b:
4 print("a est plus petit que b.")
5else:
6 print("a est plus grand que b.")
Exercice 21#
Reprenons l'exercice précédent. Que se passe-t-il si a est égal à b?
Améliorez le programme précédent en traitant aussi le cas où a est égal à b.
# Écrivez le programme ici
Solution
1a = float(input("Valeur de a: "))
2b = float(input("Valeur de b: "))
3if a == b:
4 print("a est égal à b.")
5elif a < b:
6 print("a est plus petit que b.")
7else:
8 print("a est plus grand que b.")
Exercice 22#
# Complétez le programme seulement où il y a les ...
a = ... # choisissez une valeur pour a
if ... :
print("a est plus grand que 5.")
elif ... :
print("a est égal à 5.")
else:
print("a est ...")
Tester la justesse de votre code avec différentes valeurs de a.
Solution
a = ... # choisir la valeur de a
if a > 5:
print("a est plus grand que 5.")
elif a == 5: # a == 5 pour la comparaison
print("a est égal à 5.")
else:
print("a est plus petit que 5.")
Exercice 23#
Que va afficher ce programme?
1x = 2
2if x <= -1:
3 print(2 * x + 1)
4elif x <= 3:
5 print(-x + 2)
6else:
7 print(2 * x - 5)
Exercice 24#
Écrivez un programme qui demande son âge à l'utilisateur et affiche s'il est majeur ou s'il est mineur.
age = int(input("Quel est ton âge?"))
# Complétez le programme ici
Solution
age = int(input("Quel est ton âge? "))
if age < 18:
print("Tu es mineur.")
else:
print("Tu es majeur.")
Exercice 25#
Indiquez l'ordre d'exécution et ce que vont afficher les programmes suivants?
1a = 2 2if a != 2: 3 print("Rouge") 4elif a < 2: 5 print("Bleu") 6else: 7 print("Jaune")
Solution
1 - 2 - 4 - 6 - 7
1a = 2 2if a != 2: 3 print("Rouge") 4elif a < 2: 5 print("Bleu") 6else: 7 print("Jaune")
1y = 2 2if y <= -1: 3 y = 3 * y + 5 4elif y <= 3: 5 y += 4 6else: 7 y = y * y - 1 8print(y)
Solution
1 - 2 - 4 - 5 - 6 - 8
1y = 2 2if y <= -1: 3 y = 3 * y + 5 4elif y <= 3: 5 y += 4 6else: 7 y = y * y - 1 8print(y)
Exercice 26#
Le programme suivant est censé affiché le tarif appliqué en fonction de l'âge de l'utilisateur. Mais il contient une erreur par ligne, trouvez-les et corrigez-les.
age = input("Quel âge as-tu? ")
if age > 18:
print("Tu payes le tarif enfant.")
elif age < 65
print "Tu payes le tarif adulte."
else age >= 65:
print(Tu payes le tarif retraité.)
Solution
age = int(input("Quel âge as-tu? "))
if age < 18:
print("Tu payes le tarif enfant.")
elif age < 65:
print("Tu payes le tarif adulte.")
else:
print("Tu payes le tarif retraité.")
Exercice 27#
Écrivez un algorithme qui:
demande un nombre à l'utilisateur,
soustrait 5,5 à ce nombre,
si le résultat est négatif, lui ajoute 10,
affiche le résultat obtenu.
# Écrivez le programme
Solution
nombre = float(input("Choisissez un nombre"))
nombre = nombre - 5.5
if nombre < 0:
nombre += 10
print(nombre)
Exercice 28#
Voici trois programmes:
Quelles sont les différences?
Que vont-ils afficher?
Faites un ordinogramme pour chacun.
Programme 1
1x = -1
2if x < 0:
3 x = x + 5
4elif x < 5:
5 x = x * 3
6elif x < 10:
7 x = x - 6
8else:
9 x = 1000
10print(x)
Programme 2
1x = -1
2if x < 0:
3 x = x + 5
4if x < 5:
5 x = x * 3
6if x < 10:
7 x = x - 6
8else:
9 x = 1000
10print(x)
Programme 3
1x = -1
2if x < 0:
3 x = x + 5
4 if x < 5:
5 x = x * 3
6 if x < 10:
7 x = x - 6
8else:
9 x = 1000
10print(x)
Exercice 29#
Le programme suivant contient une erreur de logique. Testez le programme avec différentes valeurs pour trouver et corriger l'erreur.
age = 18
if age >= 18:
print("Tu payes le prix adulte.")
elif age >= 65:
print("Tu payes le prix retraité")
else:
print("Tu payes le prix enfant.")
Solution
Le elif
ne sera jamais exécuté, car si l'âge est supérieur ou égal à 65, il
est aussi supérieur ou égal à 18. Donc la condition du if
sera vérifiée.
Il faut donc tester les conditions par ordre croissant: enfant, adulte, retraité ou par ordre décroissant: retraité, adulte, enfant.
Exercice 30#
Un zoo pratique les tarifs suivants:
Les enfants jusqu'à 16 ans révolus payent 15 francs.
Les jeunes entre 16 et 20 ans payent 22 francs.
Les adultes à partir de 21 ans payent 28 francs.
Écrivez un programme qui demande l'âge de l'utilisateur et affiche le prix à payer.
Le rendu du programme doit être le suivant:
Quel est ton âge? 16
Pour une personne de 16 ans, le prix à payer est de 22 francs.
# Écrivez le programme
Solution
age = int(input("Quel est ton âge?"))
if age < 16:
prix = 15
elif age <= 20:
prix = 22
else :
prix = 28
print ("Pour une personne de", age, "ans, le prix à payer est de", prix, "francs.")
Opérateurs logiques#
Les opérateurs logiques permettent de combiner plusieurs conditions simples
Opérateur |
Description |
---|---|
and |
retourne True si les deux conditions sont vraies |
or |
retourne True si une des conditions est vraie |
not |
inverse le résultat, renvoie True si le résultat est faux et vice-versa |
Exemple 7#
(5 < 3) and (2 < 6)
retourne False
, car 5 < 3
retourne False
.
(5 < 3) or (2 < 6)
retourne True
, car 2 < 6
retourne True
.
(2 < 3) and (2 < 6)
retourne True
, car 2 < 3
retourne True
et 2 < 6
retourne True
.
(2 > 3) or (2 > 6)
retourne False
, car 2 > 3
retourne False
et 2 > 6
retourne False
.
not (4 == 4)
retourne False
, car 4 == 4
retourne True
.
not (3 == 4)
retourne True
, car 3 == 4
retourne False
.
Exercice 31#
Julien souhaite s'inscrire à des séances d'équitation. Le club propose deux type de tarification:
Tarif A: Avec un abonnement annuel de 185 francs, la séance coûte 11 francs.
Tarif B: Sans abonnement, la séance coûte 17 francs.
Écrivez un programme qui demande à Julien le nombre de séance qu'il voudrait suivre pendant l'année et afficher le tarif le plus avantageux dans ce cas.
nb_seances = int(input("Nombre de séances: "))
# Complétez le programme
prixA = ...
prixB = ...
Solution
nb_seances = int(input("Nombre de séances: "))
prix_A = 11 * nb_seances + 185
prix_B = 17 * nb_seances
if prix_A < prix_B:
print("Le tarif A est le plus avantageux.")
elif prix_B < prix_A:
print("Le tarif B est le plus avantageux.")
else:
print("Les deux tarifs sont équivalents.")
Exercice 32#
Écrivez un programme qui demande trois nombres à l'utilisateur et affiche le maximum (le plus grand).
nombre_1 = float(input("Choisir un premier nombre: "))
nombre_2 = float(input("Choisir un deuxième nombre: "))
nombre_3 = float(input("Choisir un troisième nombre: "))
# Complétez le programme ici
Solution
nombre_1 = float(input("Choisir un premier nombre: "))
nombre_2 = float(input("Choisir un deuxième nombre: "))
nombre_3 = float(input("Choisir un troisième nombre: "))
max = nombre_1
if nombre_2 > max :
max = nombre_2
if nombre_3 > max :
max = nombre_3
print("Le plus grand nombre est", max)
Exercice 33#
Écrivez un programme qui demande un nombre entier à l'utilisateur et affiche s'il est pair ou impair.
Astuce
Utilisez le modulo (reste de la division entière) pour déterminer si un nombre est divisible par un autre nombre.
print(14 % 5) # Tester avec d'autres valeurs
# Écrivez le programme ici
Solution
nombre = int(input("Choisir un nombre entier: "))
if nombre % 2 == 0:
print(nombre, "est pair.")
else:
print(nombre, "est impair.")
Exercice 34#
Écrivez un programme qui demande un nombre entier à l'utilisateur et affiche s'il est divisible par 3 et 13.
# Écrivez le programme ici
Solution
nombre = int(input("Choisir un nombre entier: "))
if nombre % 3 == 0 and nombre % 13 == 0:
print(nombre, "est divisible par 3 et 13.")
elif nombre % 3 == 0:
print(nombre, "est divisible par 3.")
elif nombre % 13 == 0:
print(nombre, "est divisible par 13.")
else:
print(nombre, "n'est divisible ni par 3, ni par 13.")
Exercice 35#
Écrivez un programme qui permet de résoudre des équations du deuxième degré. Ce programme doit afficher le nombre de solutions et les calculer.
# Écrivez le programme ici
Solution
from math import sqrt
# Demande à l'utilisateur les valeurs des coefficients a, b et c
a = float(input("Coefficient de x^2: "))
b = float(input("Coefficient de x: "))
c = float(input("Coefficient sans partie littérale: "))
if a == 0:
print("Ce n'est pas une équation du deuxième degré.")
print("La solution de l'équation est", -c / b)
else:
delta = b ** 2 - 4 * a *c
if delta < 0:
print("Cette équation n'a pas solution.")
elif delta == 0:
x = -b / (2 * a)
print("Cette équation a une seule solution: x =", x)
else:
x_1 = (-b + sqrt(delta)) / (2 * a)
x_2 = (-b - sqrt(delta)) / (2 * a)
print("Cette équation a deux solutions: x_1 =", x_1, "et x_2 =", x_2)