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.

Important

Un bloc d'instructions est un groupe d'instructions qui doivent être exécutées ensemble. En Python, les instructions d'un même bloc sont reconnaissables car elles ont toutes exactement la même indentation.

L'indentation consiste à décaler une instruction vers la droite, généralement avec 4 espaces (ou une tabulation).

Exemple 1 (if)#

Le bloc d'instructions ne sera exécuté que si la condition est vraie.

Ordinogramme if
1print("Début")
2meteo = "soleil"
3print("Je mets ma veste.")
4if meteo == "pluie":
5    print("Je prends un parapluie.")
6print("Je pars.")
7print("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 2 (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
1moyenne = 5
2print("La moyenne est de", moyenne)
3
4if moyenne >= 4:
5    print("Moyenne suffisante")
6else:
7    print("Moyenne insuffisante")
8
9print("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 3 (if ... elif ... else)#

Certaines situations nécessitent de distinguer plus qu'un ou deux cas.

Ordinogramme if-elif-else
 1type_film = "comédie"
 2print("Le type de film est", type_film)
 3
 4if type_film == "action":
 5    print("Explosions et des cascades de folie!")
 6elif type_film == "comédie":
 7    print("Mort de rire!")
 8elif type_film == "horreur":
 9    print("Terrifiant!")
10else:
11    print("Je ne connais pas.")
12
13print("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 1#

É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."
1a = float(input("Entrez un nombre positif: "))
2# Complétez le programme ici

Exercice 2#

É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"
1# Écrivez le programme ici

Exercice 3#

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.

1# Écrivez le programme ici

Exercice 4#

1# Complétez le programme seulement où il y a les ...
2a = ...       # choisissez une valeur pour a
3if ... :
4  print("a est plus grand que 5.")
5elif ... :
6  print("a est égal à 5.")
7else:
8  print("a est ...")

Tester votre code avec différentes valeurs de a.

Exercice 5#

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 6#

Écrivez un programme qui demande son âge à l'utilisateur et affiche s'il est majeur ou s'il est mineur.

1age = int(input("Quel est ton âge?"))
2
3# Complétez le programme ici

Exercice 7#

Indiquez l'ordre d'exécution (N° de ligne) et ce qui va être affiché par chacun des programmes suivants.

  1. 1a = 2
    2if a != 2:
    3    print("Rouge")
    4elif a < 2:
    5    print("Bleu")
    6else:
    7    print("Jaune")
    
  2. 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 8#

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.

1age = input("Quel âge as-tu? ")
2if age > 18:
3print("Tu payes le tarif enfant.")
4elif age < 65
5  print "Tu payes le tarif adulte."
6else age >= 65:
7  print(Tu payes le tarif retraité.)

Exercice 9#

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

1# Écrivez le programme

Exercice 10#

Voici trois programmes:

  1. Quelles sont les différences?

  2. Indiquez l'ordre d'exécution des lignes.

  3. 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 11#

Le programme suivant contient une erreur de logique. Testez le programme avec différentes valeurs pour trouver et corriger l'erreur.

1age = 18
2if age >= 18:
3  print("Tu payes le prix adulte.")
4elif age >= 65:
5  print("Tu payes le prix retraité")
6else:
7  print("Tu payes le prix enfant.")

Exercice 12#

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.
1# Écrivez le programme

Exercice 13#

Ecrivez un programme qui demande à l’utilisateur le nombre de bouteilles qu’il achète et lui indique en retour le rabais auquel il a droit, comme indiqué à la figure ci-dessous.

Rabais progressif
1# Écrivez le programme

Pour valider votre programme, il est important de tester tous les cas de figure et les cas particuliers.

Exercice 14#

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.

1nb_seances = int(input("Nombre de séances: "))
2
3# Complétez le programme
4prixA = ...
5prixB = ...

Exercice 15#

Écrivez un programme qui demande trois nombres à l'utilisateur et affiche le maximum (le plus grand).

1nombre_1 = float(input("Choisir un premier nombre: "))
2nombre_2 = float(input("Choisir un deuxième nombre: "))
3nombre_3 = float(input("Choisir un troisième nombre: "))
4
5# Complétez le programme ici

Exercice 16#

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

1# Écrivez le programme ici

Exercice 17#

Écrivez un programme qui demande un nombre entier à l'utilisateur et affiche s'il est divisible par 3 et 13.

1# Écrivez le programme ici

Exercice 18#

Écrivez un programme qui permet de résoudre des équations du deuxième degré de la forme \(ax^2+bx+c=0\). Ce programme doit tout d'abord demander à l'utilisateur les valeurs \(a\), \(b\) et \(c\), puis indiquer le nombre de solutions, les calculer et les afficher.

1# Écrivez le programme ici