Principe des tests de condition
Voici le principe d'une structure de test :
Attention à l'indentation
La délimitation des blocs en python se fait grâce à l'indentation (décalage par rapport à la marge de gauche).
Pour comprendre le fonctionnement et les erreurs liées à une mauvaise indentation, je vous encourage à faire les 4 parties du paragraphe Blocks sur le site Cercles Informatique.
Qu'est-ce qu'une condition ?
Une condition est une comparaison plus ou moins complexe dont l'évaluation retournera un résultat Vrai (True en python) ou Faux (False en python).
Les conditions plus ou moins complexes sont obtenues en utilisant des opérateurs booléens.
nom opérateur de test | python | exemple | |
condition simple | opérateur d'égalité | == | a==5 |
opérateur de non égalité | != | a!=5 | |
opérateur inférieur ou supérieur | < ou > | a <5 | |
opérateur inférieur ou égal | <= | a<=5 | |
conditions combinées | opérateur booléen ET | condition1 and condition2 | a<5 and b>0 |
opérateur booléen OU | condition1 or condition2 | a<5 or b>0 | |
opérateur booléen PAS | not condition | not a<5 |
Pour comprendre davantage sur l'utilisation des tests je vous encourage à faire la partie sur les opérateurs booléens sur le site Cercles Informatique.
Remarque sur l'usage des parenthèses
En python l'utilisation des parenthèses pour une condition simple n'est pas obligatoire.
Pour les conditions combinées sans parenthèse, il y a un ordre de priorité des opérations : not - and - or (NAO)
Cependant, de nombreux langages de programmation requièrent l'utilisation de parenthèses : je vous recommande donc de prendre l'habitude de faire vos tests de conditions avec des parenthèses.
C'est d'autant plus nécessaire, que pour les tests de conditions combinées, l'utilisation des parenthèses systématiquement vous limitera le risque d'erreur.
Exercices
- Site de David Roche Exercices 28 à 36
Exercice a : utilisation de if... elif... else...
- Demander à l’utilisateur une température en °C :
- donner la possibilité de saisir un nombre décimal
- on suppose que l'utilisateur à bien saisi un nombre
- Si la température est inférieure à 0 afficher “Il fait froid”
- Si la température est supérieure à 0 afficher “Température positive”
- Si la température est supérieure à 30 afficher “Il fait chaud”
Exercice b : amélioration
Utiliser une boucle while pour recommencer le script précédent.
La condition de sortie de la boucle while sera lorsque le nombre saisi sera supérieur à 50.
Exercice c
Tester le script suivant avec les nombres 1 - 2 - 3 - 15
a=int(input("Saisir un nombre"))
if (a!=2):
print("perdu")
elif (a==3):
print("un instant svp")
else:
print("Gagné")
Pourquoi le programme ne fonctionne pas correctement ?
Exercice d
Utiliser une boucle while pour afficher le résultat suivant :
*
**
***
****
*****
******
Et dans d'autres langages de programmation
Javascript
Voici un exemple de code javascript pour les tests :
var temp = 125;
var vent = 80;
if (temp<0 && vent>60) {
alert("Il fait très froid");
}
else if (temp<0 && vent<=60) {
alert("Il fait froid");
}
else {
alert("Il fait au dessus de 0°C");
}
Les opérateurs de comparaison sont sensiblement équivalents à ce que nous avons vu pour le python.
Attention : SinonSi s'écrit en 2 mots (else if).
Une description complète, notamment sur le test d'égalité stricte se trouve ici.
Les opérateurs booléens ne s'écrivent pas de la même manière :
- le ET s'écrit &&
- le OU s'écrit || (AltGr + touche 6)
Une description complète des opérateurs booléens en Javascript se trouve sur cette page.
Vous aurez remarqué que les blocs sont délimités par les accolades. L'indentation n'est pas obligatoire, pour autant elle est nécessaire pour améliorer la lisibilité !
php
Voici un exemple de code en php pour les tests :
$temp = 125;
$vent = 80;
if ($temp<0 AND $vent>60) {
echo "Il fait très froid";
}
elseif ($temp<0 AND $vent<=60) {
echo "Il fait froid";
}
else {
echo "Il fait au dessus de 0°C";
}
Les opérateurs de comparaison sont sensiblement équivalents à ce que nous avons vu pour le python.
Les opérateurs booléens sont sensiblement équivalents. Vous pouvez consulter cette page pour en savoir plus.
Vous aurez remarqué que les blocs sont délimités par les accolades. L'indentation n'est pas obligatoire, pour autant elle est nécessaire pour améliorer la lisibilité !
c++
Voici un exemple de code en C++ pour les tests :
int temp = 125, vent = 80;
string mess;
if (temp<0 && vent>60) {
mess="Il fait très froid";
}
else if (temp<0 && vent<=60) {
mess="Il fait froid";
}
else {
mess="Il fait au dessus de 0°C";
}
Les opérateurs de comparaison sont équivalents à ce que nous avons vu pour le python, comme expliqué ici.
Les opérateurs booléens ne s'écrivent pas de la même manière :
- le ET s'écrit &&
- le OU s'écrit || (AltGr + touche 6)
Une description complète des opérateurs booléens en C++ se trouve sur cette page.