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.

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

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

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

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

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

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.

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

Exercice 28#

Que vont afficher les programmes suivants?

  1. a = 2
    if a != 2:
      print("Rouge")
    elif a < 2:
      print("Bleu")
    else:
      print("Jaune")
    
  2. y = 2
    if y <= -1:
      print(3 * y + 5)
    elif y <= 3:
      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é.)

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

Exercice 31#

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

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

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

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 =  ...

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

Exercice 37#

Écrivez un programme qui demande un nombre à l'utilisateur et affiche s'il est pair ou impair.

# Écrivez le programme ici

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