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

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

2Ăšme Atelier

Conditions imbriquées

3Ăšme Atelier

Mise en situation sur les structures conditionnelles