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.

Ordinogramme if
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é.

Ordinogramme if-else
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.

Ordinogramme if-elif-else
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.")
  1. Quel message sera affiché si l'utilisateur entre 21?

  2. Que se passe-t-il si l'utilisateur entre 16 ans?

  3. Que se passe-t-il si l'utilisateur entre -10?

  4. Que se passe-t-il si l'utilisateur entre 17.5?

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#

  1. # 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.

  2. # 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.

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?"))

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?")
...

Exercice 15#

Voici trois programmes:

  1. Quelles sont les différences?

  2. Que vont-ils afficher?

  3. Faites un ordinogramme pour chacun.

Programme 1Programme 2Programme 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 1Programme 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 3Programme 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.")