Conditions | Exercices 1-5

Enoncé exercice 1

Ecrire un programme Python qui lit les notes de deux contrôles d’une matière donnée, puis calcule et affiche la moyenne obtenue. Dans le cas où la moyenne est supérieure ou égale à 10, il affichera davantage le message de félicitation suivant : Félicitations ! Vous avez validé cette matière.

Correction exercice 1

On va commencer le programme par la lecture des deux notes, en tant que nombres réels, vers les deux variable n1 et n2 (lignes 1-2). On enchainera ensuite par le calcul de la moyenne, qu’on va stocker sur la variable moy (ligne 3). Une fois cette moyenne calculée, on l’affichera par le biais de la fonction print (ligne 4).

On souhaite maintenant afficher un message de félicitation pour ceux qui ont une moyenne supérieure ou égale à 10. Et ne rien afficher de plus, dans le cas où cette dernière est inférieure à 10. Pour faire ceci, on doit avoir recours à la structure de contrôle if.

La structure de contrôle if, permet de vérifier une condition et d’exécuter un bloc d’instructions dans le cas où la condition est vraie. La condition appropriée pour ce programme sera moy>=10, et l’instruction qu’on souhaite exécuter est la fonction print.

Pour mettre ce qui précède ensemble, on commencera en écrivant le mot if suivi de la condition qui doit être terminée par deux points. Ceci va donner if moy>=10 : (ligne 5). On passe ensuite à une autre ligne, et on introduit une indentation pour indiquer que l’instruction sur cette ligne fait partie du bloc de if. Juste après l’indentation on place la fonction print avec le message à afficher dedans (ligne 6).

Solution exercice 1
n1=float(input("Entrez la note du premier contrôle: "))
n2=float(input("Entrez la note du deuxième contrôle: "))
moy=(n1+n2)/2
print("Votre moyenne est: ",moy)
if moy>=10:
    print("Félicitations! Vous avez validé cette matière.")
Enoncé exercice 2

Ecrire un programme Python, qui lit un nombre réels x, puis affiche son inverse 1/x. Dans le cas où x est nul, on affichera plutôt le message : L’inverse n’existe pas pour 0.

Correction exercice 2

Dans ce programme, on a affaire à un affichage qui dépend de la valeur d’un nombre réel x. Dans le cas où il est nul, on va afficher un message indiquant que 0 n’a pas d’inverse. Et dans le restant des cas, on doit afficher 1/x. Ce genre de situations complémentaires est géré parfaitement par la structure de contrôle if else.

On devra donc isoler le cas où x est nul, pour pouvoir afficher le message demandé. Ceci sera fait on utilisant la condition x==0 après le mot if (ligne 2). On termine la condition par deux points, puis on revient à la ligne, en insérant une indentation pour décrire le bloc d’instruction de if. Ce bloc est constitué ici d’une seule instruction, sous forme de la fonction print qui va se charger de l’affichage du message (ligne 3).

Pour traiter les autres cas où x est non nul, on revient à la ligne, et on s’aligne avec le if puis on écrit else: (ligne 4). Et on définit ensuite le bloc de else, qui va déterminer ce qui doit être fait dans le cas où la condition x==0 n’est pas vraie. C’est-à-dire lorsque x est non nul. Le bloc de else lui aussi est constitué seulement de la fonction print qui affichera l’inverse de x (ligne 5).

Solution exercice 2
x=float(input("Entrez un nombre réel: "))
if x==0:
    print("L'inverse n'existe pas pour 0")
else:
    print("L'inverse de {} est: {}".format(x,1/x))
Enoncé exercice 3

Ecrire un programme Python qui lit deux entier a et b puis affiche selon le cas :

  • a = b ;
  • a < b ;
  • a > b.
Correction exercice 3

Dans cet exercice, on se retrouve avec une situation où on doit séparer l’ensemble des possibilités en trois cas. Pour ce genre de problèmes, la structure de contrôle if else, qui marche très bien pour les situations à deux cas, ne doit pas être envisagée. Le langage Python a mis sous notre disposition la structure if elif else pour traiter ces problèmes en cascade.

Notre programme aura la structure suivante :

  • Si a==b, afficher le message approprié et arrêter (lignes 3-4);
  • Sinon, si a<b, afficher le message approprié et arrêter (lignes 5-6);
  • Sinon afficher a>b et arrêter (lignes 7-8).

Le premier Si correspond au if de la structure de contrôle. Le Sinon, si qui est en anglais else if est contracté pour donner elif. Et le dernier Sinon, correspond quand à lui au else de la structure de contrôle if elif else.

Solution exercice 3
a=int(input("Entrez le premier nombre: "))
b=int(input("Entrez le deuxième nombre: "))
if a==b:
    print("{} = {}".format(a,b))
elif a<b:
    print("{} < {}".format(a,b))
else:
    print("{} > {}".format(a,b))
Enoncé exercice 4

Ecrire un programme Python qui lit une note entre 0 et 20 puis affiche :

  • Non validé, si: note < 10 ;
  • Passable, si : 10 ≤ note < 12 ;
  • Assez bien, si : 12 ≤ note < 14 ;
  • Bien, si : 14 ≤ note < 16 ;
  • Très bien, si : 16 ≤ note < 18 ;
  • Excellent, si : 18 ≤ note ≤ 20 ;
Correction exercice 4

La structure de contrôle if elif else est logiquement constituée d’un seul if et d’un seul else alors que le nombre de elif qu’elle peut avoir n’est pas limité. C’est cette caractéristique de la structure qu’on va exploiter pour l’intérêt de cet exercice.

On va isoler en premier, le cas où la note est strictement inférieure à 10, en mettant comme condition pour if, l’expression note<10 (ligne 2). Où note est la variable qui contient la note entrée par l’utilisateur (ligne 1). Le bloc de if sera constitué de la fonction print qui affichera le message Non validé (ligne 3).

Pour traiter le deuxième cas, à savoir quand la note est comprise entre 10 et 12 (non incluse), on va exploiter un premier elif de la structure. Cet elif aura normalement comme condition 10 ≤ note < 12. Mais si on est arrivé à cet elif, c’est que la condition de if n’est pas vraie. Donc, on est sûr que note est supérieure ou égale à 10. Ceci dis, on ne va vérifier que si la note est inférieure à 12 (ligne 4). On donnera comme bloc pour cet elif l’affichage de la mention Passable (ligne 5).

Pour les blocs elif qui restent, on va adopter le même principe, et on ne va vérifier que si note est inférieure à 14 pour le premier d’entre eux, à 16 pour le deuxième et à 18 pour le dernier elif (lignes 6-11).

Pour la mention excellent, on peut soit utiliser un autre elif ayant comme condition note ≤ 20 (plusieurs conditions peuvent marcher très bien ici). Ou, utiliser un else, car si on est arrivé jusqu’à ce point c’est que la note est forcément supérieure ou égale à 18 (ligne 12).

Solution exercice 4
note=float(input("Entrez la note: "))
if note<10:
    print("Non validé")
elif note<12:
    print("Passable")
elif note<14:
    print("Assez bien")
elif note<16:
    print("Bien")
elif note<18:
    print("Très bien")
else:
    print("Excellent")
Enoncé exercice 5

Ecrire un programme Python qui choisi aléatoirement un nombre secret entre 1 et 10, puis demande à l’utilisateur de le prédire et donne l’un des verdicts suivants :

  • Bravo !: si le nombre a été bien prédis ;
  • Donner une deuxième et dernière chance à l’utilisateur si le nombre entré est juste en dessus ou en dessous du nombre secret et d’afficher :
    • Bon travail !: si cette deuxième tentative est correcte ;
    • Pas correct !: si elle est fausse.
  • Pas correct !: si la première tentative est loin du nombre secret.
Correction exercice 5

Dans cet exercice, on va apprendre à générer d’une manière aléatoire un nombre entier qui appartient à un intervalle donné. L’intervalle qui nous concerne ici est les nombres entre 1 et 10, les deux compris. Le langage Python met à notre disposition l’outil random.randrange(), défini dans le module random, pour réaliser ceci. Cet outil à qui on peut passer deux entiers a et b, de la façon suivante random.randrange(a,b), va nous renvoyer un entier de cet intervalle (b non compris).

La première chose à faire, est d’importer le module random pour pouvoir utiliser l’outil random.randrange() (ligne 1). Ensuite on va exploiter ce dernier pour affecter à la variable secret un nombre entre 1 et 10 (ligne 2). Cette variable représente le nombre secret que l’utilisateur va essayer de prédire.

Une fois que le nombre secret est créé, on demandera à l’utilisateur de faire sa prédiction et on va la stocker dans la variable essai (ligne 3).

Afin de donner notre décision, on va utiliser la structure de contrôle if elif else (lignes 4-13). Le if va traiter le cas d’une bonne prédiction, le elif va traiter celui d’une tentative proche du nombre secret et le else va se charger du cas qui reste, à savoir quand la tentative est loin du nombre secret.

Le bloc qui nous intéresse le plus est celui de elif, les deux autres sont simples à concevoir.

Concernant le bloc de if, if aura comme condition essai==secret. Lorsque cette condition est vraie on affichera un message de félicitation (lignes 4-5).

Pour le bloc de else, il suffira d’indiquer que la prédiction n’est pas correcte, à l’aide de la fonction print (lignes 12-13).

Pour le bloc de elif qui s’intéressera au cas où la prédiction est juste en dessus ou en dessous du nombre secret, on demander à l’utilisateur de faire une deuxième tentative en utilisant la fonction input (ligne 7). Après la lecture de cette nouvelle prédiction vers la variable essai, on va utiliser une structure de contrôle if else à l’intérieur du bloc de elif pour pouvoir donner le verdict final (lignes 8-11).

Solution exercice 5
import random
secret=random.randrange(1,11)
essai=int(input("Prédire un nombre entre 1 et 10: "))
if essai==secret:
    print("Bravo!")
elif essai==secret+1 or essai==secret-1:
    essai=int(input("Vous êtes très proche! Réessayer: "))
    if essai==secret:
        print("Bon travail!")
    else:
        print("Pas correct! le nombre secret est: ",secret)
else:
    print("Pas correct! le nombre secret est: ",secret)