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 21#
Est-ce que les expressions suivantes sont True
(vrai) ou False
(faux)?
Exemple if 1#
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 if ... else 2#
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 if ... elif ... else 3#
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 22#
É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(await input_line("Entrez un nombre positif: "))
# Complétez le programme ici
Solution
1a = float(await input_line("Entrez un nombre positif: "))
2if a < 0:
3 print("Ce nombre n'est pas positif.")
Exercice 23#
É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(await input_line("Valeur de a: "))
2b = float(await input_line("Valeur de b: "))
3if a < b:
4 print("a est plus petit que b.")
5else:
6 print("a est plus grand que b.")
Exercice 24#
Reprenons l'exercice précédent. Que se passe-t-il si a = b?
Améliorez le programme précédent en traitant aussi le cas où a = b.
# Écrivez le programme ici
Solution
1a = float(await input_line("Valeur de a: "))
2b = float(await input_line("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 25#
# Complétez le programme
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 26#
1x = 2
2if x <= -1:
3 print(2 * x + 1)
4elif x <= 3:
5 print(-x + 2)
6else :
7 print(2 * x - 5)
Exercice 27#
Écrivez un programme qui demande son âge à l'utilisateur et affiche s'il est majeur ou s'il est mineur.
age = int(await input_line("Quel est ton âge?"))
# Complétez le programme ici
Solution
age = int(await input_line("Quel est ton âge? "))
if age < 18:
print("Tu es mineur.")
else:
print("Tu es majeur.")
Exercice 28#
Que vont afficher les programmes suivants?
a = 2 if a != 2: print("Rouge") elif a < 2: print("Bleu") else: print("Jaune")
Solution
a = 2 if a != 2: print("Rouge") elif a < 2: print("Bleu") else: print("Jaune")
y = 2 if y <= -1: print(3 * y + 5) elif y <= 3: print(y + 4) else: print(y * y - 1)
Solution
y = 2 if y <= -1: print(3 * y + 5) elif y < 2: print(y + 4) else: print(y * y - 1)
Exercice 29#
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 = await input_line("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(await input_line("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 30#
É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(await input_line("Choisissez un nombre"))
nombre = nombre - 5.5
if nombre < 0:
nombre = nombre + 10
print(nombre)
Exercice 31#
Voici trois programmes:
Quelles sont les différences?
Que vont-ils afficher?
Faites un ordinogramme pour chacun.
Programme 1 | Programme 2 | Programme 3 |
---|---|---|
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)
|
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)
|
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 32#
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 33#
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.
# Écrivez le programme
Solution
age = int(await input_line("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 4#
(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 34#
Une salle de trampoline pratique les tarifs suivants pour deux personnes:
Si les deux personnes sont mineures, elles payent chacune 7 francs.
Si une seule est mineure, elles payent un tarif de groupe de 18 francs.
Si les deux personnes sont majeures, elles payent au total 25 francs.
Écrivez un programme qui demande l'âge des deux personnes et affiche le prix à payer.
age_1 = int(await input_line("Quel est l'âge de la première personne? "))
age_2 = int(await input_line("Quel est l'âge de la deuxième personne? "))
# Complétez le programme ici
Solution
age_1 = int(await input_line("Quel est l'âge de la première personne? "))
age_2 = int(await input_line("Quel est l'âge de la deuxième personne? "))
if age_1 < 18 and age_2 < 18:
prix = 2 * 7
elif age_1 < 18 or age_2 < 18:
prix = 18
else:
prix = 25
print("Le prix total à payer est de", prix, "francs.")
Exercice 35#
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(await input_line("Nombre de séances: "))
# Complétez le programme
prixA = ...
prixB = ...
Solution
nb_seances = int(await input_line("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 36#
Écrivez un programme qui demande trois nombres à l'utilisateur et affiche le maximum (le plus grand).
nombre_1 = int(await input_line("Choisir un premier nombre: "))
nombre_2 = int(await input_line("Choisir un deuxième nombre: "))
nombre_3 = int(await input_line("Choisir un troisième nombre: "))
# Complétez le programme ici
Solution
nombre_1 = int(await input_line("Choisir un premier nombre: "))
nombre_2 = int(await input_line("Choisir un deuxième nombre: "))
nombre_3 = int(await input_line("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 37#
Écrivez un programme qui demande un nombre à 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(await input_line("Choisir un nombre: "))
if nombre % 2 == 0:
print(nombre, "est pair.")
else:
print(nombre, "est impair.")
Exercice 38#
Écrivez un programme qui demande un nombre à l'utilisateur et affiche s'il est divisible par 3 et 13.
# Écrivez le programme ici
Solution
nombre = int(await input_line("Choisir un nombre: "))
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.")