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 == 22 * 3 == 32 + 3 != 414 >= 152 ** 3 == 613 >= 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 et 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 et sauvegarder la valeur dans la variable a
Demander à l'utilisateur d'entrer la valeur de b et 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 - 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?
Indiquez l'ordre d'exécution des lignes.
Que vont-ils afficher?
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: "))
if nombre_1 > nombre_2 and nombre_1 > nombre_3:
print("Le plus grand nombre est", nombre_1)
elif nombre_2 > nombre_1 and nombre_2 > nombre_3:
print("Le plus grand nombre est", nombre_2)
else:
print("Le plus grand nombre est", nombre_3)
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)