Structures conditionnelles
Structures conditionnelles - if
Au cours de son dĂ©roulement, un programme a besoin de prendre des dĂ©cisions en fonction des donnĂ©es quâil rencontre.
Comment cela se traduit ?
- La condition est trÚs souvent une opération de comparaison.
- Attention au : qui est primordial.
- Câest lâindentation (le dĂ©calage par rapport Ă la marge gauche) qui dĂ©limite le bloc dâinstructions.
- La partie else est facultative.
Exemple simple
Prenons lâexemple de cet ordinogramme :
# Nous demandons Ă l'utilisateur de saisir un Ăąge
age = int(input("Saisir votre Ăąge :"))
# Nous testons l'Ăąge Ă partir de la valeur saisie par l'utilisateur
# Nous pouvons noter dans cet exemple la "condition" qui permet de définir, grùce à l'ùge, si la personne est majeure ou mineure.
if age >= 18:
print("Vous ĂȘtes majeur(e).")
else:
print("Vous ĂȘtes mineur(e).")
Lâindentation est fondamentale dans la syntaxe Python. Elle indique quels blocs de code appartiennent Ă quelles conditions.
Une mauvaise indentation dans le meilleur des cas gĂ©nĂšre une erreur et stop lâexĂ©cution, dans le pire des cas, le code sâexĂ©cute au complet, mais le rĂ©sultat fourni nâest pas celui attendu.
Voici un exemple montrant une erreur logique dĂ©coulant dâune mauvaise indentation:
nombre = 5
if nombre == 5:
print("Le test est vrai")
print("car la variable nombre vaut", nombre)
Le test est vrai
car la variable nombre vaut 5
nombre = 6
if nombre == 5:
print("Le test est vrai")
print("car la variable nombre vaut", nombre)
car la variable nombre vaut 6
Structures conditionnelles - Succession de if avec elif
Prenons lâexemple de cet ordinogramme :
Il est naturel de se retrouver à devoir prendre un décision en fonction de multiples choix. Comment cela fonctionne avec Python ?
# Cet algorithme a pour but de permettre à un utilisateur de choisir son sport préféré
print("1. basket")
print("2. football")
print("3. hockey")
print("4. danse")
print("5. baseball")
# L'utilisateur saisir un code en fonction du sport choisi
sport = int(input("Saisir un nombre entre 1 et 5 pour choisir votre sport préféré : "))
# Le code saisi dans la variable position est testé pour afficher la position du joueur
if sport == 1:
print("Votre sport préféré est le basket.")
elif sport == 2:
print("Votre sport préféré est le football.")
elif sport == 3:
print("Votre sport préféré est le hockey.")
elif sport == 4:
print("Votre sport préféré est la danse.")
else:
print("Votre sport préféré est le baseball.")
- elif nâest dĂ©clenchĂ© que si la (les) condition(s) prĂ©cĂ©dente(s) a (ont) Ă©chouĂ©.
- ce qui fait quâil est prĂ©fĂ©rable dâenchaĂźner les if dans le cas oĂč plusieurs conditions peuvent ĂȘtre remplies.
- elif est situĂ© au mĂȘme niveau que if et else.
- La quantitĂ© de elif peut-ĂȘtre infinie.
Imbrication des conditions
AprĂšs un if
, on peut Ă©crire toute sorte dâinstructions, y compris dâautres conditions. Voici par exemple une implĂ©mentation partielle dâun algorithme qui vĂ©rifie si une personne peut voter :
# Exemple : vérifier l'ùge et la citoyenneté pour voter
age = int(input("Entrez votre Ăąge : "))
citoyennete = str(input("Ătes-vous citoyen(ne) ? (oui/non) : "))
# Si la personne a plus de 18 ans alors elle est en Ăąge de voter
if age >= 18:
# Si la personne est citoyenne, elle peut définitivement voter
if citoyennete == "oui":
print("Vous ĂȘtes Ă©ligible pour voter.")
# Sinon ce n'est pas possible
else:
print("Vous devez ĂȘtre citoyen(ne) pour voter.")
# Ce "else" fait parti du premier if qui vérifie l'ùge de la personne
else:
print("Vous devez avoir au moins 18 ans pour voter.")
Remarquez lâimbrication des if
et des else
.
Evaluation des conditions
La condition évaluée est toujours un booléen. On génÚre un booléen avec des opérations de compraison et on peut les combiner avec les opérations logiques.
Les opérateurs de comparaison
Les opérateurs de comparaison permettent de comparer des valeurs et de déterminer si une condition est vraie ou fausse.
Soient a = 10
et b = 3
Opération (opérateur) | Exemple |
---|---|
ĂgalitĂ© (== ) |
a == b donne faux (False ) |
Inégalité (!= ) |
a != b donne vrai (True ) |
Supérieur ù (> ) |
a > b donne vrai (True ) |
Inférieur à (< ) |
a < b donne faux (False ) |
Supérieur ou égal ù (>= ) |
a >= b donne vrai (True ) |
Inférieur ou égal à (<= ) |
a <= b donne faux (False ) |
Les opérateurs logique
Les opérateurs logiques permettent de combiner des expressions booléennes.
Soient a = True
et b = False
Opération (opérateur) | Explication | Exemple |
---|---|---|
Et (and) | Renvoie True si les deux expressions sont vraies. |
a and b donne False |
Ou (or) | Renvoie True si au moins lâune des expressions est vraie. |
a or b donne True |
Non (not) | Inverse la valeur dâune expression (si câĂ©tait True , devient False , et vice versa). |
not a donne False |
Il est possible de mettre plusieurs conditions dans un if
. Exemple:
# Nous demandons Ă l'utilisateur de saisir un Ăąge
age = int(input("Saisir votre Ăąge :"))
# Ici nous ajoutons un contrÎle de saisie pour que l'utilisateur ne mette pas un ùge inférieur à 0 et supérieur à 130
if age < 0 or age >= 130:
print("Vous devez saisir un Ăąge compris entre 1 et 129 ans")
else:
if age >= 18:
print("Vous ĂȘtes majeur(e).")
else:
print("Vous ĂȘtes mineur(e).")
Comparer les nombres flottant
La comparaison de nombre flottant est un peu plus subtile que la comparaison de valeur entiÚre ou de chaßnes de caratÚres. Plus de détails sont donné ici : Tester les nombres flottant
1er Atelier
Créer un Notebook Jupyter vide, suivre la procédure à partir du 6. Cliquez ici
Prise en main des structures conditionnelles