Révisions - 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 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 avec if#
Le bloc d'instructions ne sera exécuté que si la condition est vraie.
print("Début")
meteo = "soleil"
if meteo == "pluie":
print("Je prends un parapluie.")
print("Fin")
Dans l'exemple ci-dessus, il ne se passe rien, la condition n'est pas vérifiée.
Changez la météo en "pluie". Que se passe-t-il?
Exemple avec 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
if moyenne >= 4:
print("Moyenne suffisante")
else:
print("Moyenne insuffisante")
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.
Exemple avec if ... elif ... else#
Certaines situations nécessitent de distinguer plus qu'un ou deux cas.
type_film = "comédie"
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.")
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.
Exercice 10#
1age = int(input("Quel âge as-tu? "))
2if age >= 18:
3 print("Tu es majeur.")
4else:
5 print("Tu es mineur.")
Quel message sera affiché si l'utilisateur entre 21?
Que se passe-t-il si l'utilisateur entre 16 ans?
Que se passe-t-il si l'utilisateur entre -10?
Que se passe-t-il si l'utilisateur entre 17.5?
Solution
Vérifie tes réponses en exécutant le code.
1age = int(await input_line("Quel âge as-tu? "))
2if age >= 18:
3 print("Tu es majeur.")
4else:
5 print("Tu es mineur.")
Exercice 11#
1x = 2
2if x <= -1 :
3 print(2 * x + 1)
4elif x <=3 :
5 print(-x + 2)
6else :
7 print(2 * x - 5)
Exercice 12#
# Complétez le programme a = ... if ... : print("a est nul.") elif ... : print("a est plus petit que 0.") else: print("a est ...")
Testez la justesse de votre code avec différentes valeurs de a.
Solution
a = ... # choisir la valeur de a if a == 0 : # a == 0 pour la comparaison print("a est nul.") elif a < 0 : print("a est plus petit que 0.") else: print("a est plus grand que 0")
# Complétez le programme a = ... b = ... if ... : # tester que b n'est pas nul print(a / b) else: print("La division par 0 est impossible.")
Testez la justesse de votre code avec différentes valeurs de a et de b.
Solution
a = ... # choisir la valeur de a b = ... # choisir la valeur de b if b != 0 : # tester que b n'est pas nul print(a / b) else: print("La division par 0 est impossible.")
Exercice 13#
Nous souhaitons créer un programme qui calcule le prix à payer lors de l'achat de canette de Red Bull dont le prix unitaire est de 1.50 CHF.
Écrivez un programme qui correspond à l'algorithme suivant:
Stocker le prix d'une canette de Red Bull dans la variable prix_unitaire
Demander à l'utilisateur combien de canettes il souhaite acheter et stocker cette valeur dans nb_canettes
Si le nb_canettes est plus petit que 0
afficher "La quantité doit être un nombre positif."
Sinon
calculer et afficher le prix à payer
# Modifiez et complétez le programme
prix_unitaire = ...
nb_canettes = int(await input_line("Nombre de canettes de Red Bull à acheter?"))
Solution
1prix_unitaire = 1.5
2nb_canettes = int(await input_line("Nombre de canettes de Red Bull à acheter?"))
3if nb_canettes < 0:
4 print("La quantité doit être un nombre positif.")
5else:
6 print("Prix à payer:", nb_canettes * prix_unitaire, "CHF.")
Exercice 14#
Écrivez un programme qui correspond à l'algorithme suivant:
Demander l'âge de l'utilisateur et le stocker dans la variable age
Si age est plus petit que 16
afficher "Tu ne peux pas acheter d'alcool."
Sinon si age est plus petit que 18
afficher "Tu peux acheter de la bière et du vin."
Sinon
afficher "Tu peux acheter de l'alcool."
# Modifiez et complétez le programme
... await input_line("Quel est votre âge?")
...
Solution
1age = int(await input_line("Quel âge as-tu?"))
2if age < 16:
3 print("Tu ne peux pas acheter d'alcool.")
4elif age < 18:
5 print("Tu peux acheter de la bière et du vin.")
6else:
7 print("Tu peux acheter de l'alcool.")
Exercice 15#
Voici trois programmes:
Quelles sont les différences?
Que vont-ils afficher?
Faites un ordinogramme pour chacun.
Programme 1 | Programme 2 | Programme 3 |
---|---|---|
1x = -4
2if x < 0:
3 x += 7
4if x < 5:
5 x *= 4
6if x < 10:
7 x -= 6
8else:
9 x = 1000
10print(x)
|
1x = -4
2if x < 0:
3 x += 7
4elif x < 5:
5 x *= 4
6elif x < 10:
7 x -= 6
8else:
9 x = 1000
10print(x)
|
1x = -4
2if x < 0:
3 x += 7
4 if x < 5:
5 x *= 4
6 if x < 10:
7 x -= 6
8else:
9 x = 1000
10print(x)
|
Exercice 16#
Que vont afficher chacun de ces programmes?
Programme 1 | Programme 2 |
---|---|
1a = 22
2b = 5
3c = 1
4print((a > b) and (b <= c))
|
1a = 11
2b = 3
3c = 0
4print((a < b) or (c == 0))
|
Programme 3 | Programme 4 |
---|---|
1a = 11
2b = 3
3c = 0
4print((a < b) or (c != 0))
|
1a = 1.5
2b = 3.2
3print(not(a <= b))
|
Exercice 17#
Le programme suivant contient une erreur de logique. Testez le programme avec différentes valeurs pour la trouver et corrigez-la.
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.