Aller au contenu

if

La syntaxe

if condition:
    actions à exécuter si condition est satisfaite
else:
    actions à exécuter si condition n'est pas satisfaite.

Parfois, on ne veut rien faire lorsque la condition n'est pas satisfaite. Dans ce cas, on peut choisir de l'écrire de façon explicite avec pass (qui signifie "ne rien faire" et passer à l'instruction suivante):

if condition:
    actions à exécuter si condition est satisfaite
else:
    pass

instruction suivante (hors du bloc if)

Mais dans ce cas, on utilisera plutôt une suppression de la clause else (cela a le même effet que else: pass):

if condition:
    actions à exécuter si condition est satisfaite


instruction suivante (hors du bloc if)

Exercice

Écrire un code pour le corps de la fonction suivante:

def f(n):
    """
    n -- entier

    renvoie le triple de n si n est pair, le double de n si n est impair.

    >>> f(4)
    12
    >>> f(5)
    10
    """

Multiple de

On rappelle que, pour a et b entiers, a%b est le reste de la division entière de a par b.

Le test a%b == 0 signifie donc "le reste de la division entière de a par b est nul", ou en d'autres termes: "a est multiple de b".

Cette remarque sera souvent utilisée... A retenir!

Un code possible
def f(n):
    """
    n -- entier

    renvoie le triple de n si n est pair, le double de n si n est impair.

    >>> f(4)
    12
    >>> f(5)
    10
    """
    if n%2 == 0:
        return 3*n
    else:
        return 2*n

Algorithme de travail des exercices

Rappelons que vous ne devez jamais vous contenter de lire la solution. Pour chaque exercice, votre démarche doit être la même:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
ok ← faux
Tant que non ok:
    * Cherchez par vous-même, testez, cherchez, testez, cherchez, testez, cherchez...

    * Si vous êtes parvenu à écrire un code qui semble fonctionner:
        - vous lisez la correction,
        - vous essayez de comprendre les éventuelles divergences entre votre code 
        et la correction proposée.
        - ok ← vrai

     sinon:
        - vous lisez la solution,  
        - vous la fermez ensuite et vous essayez à nouveau 
        (pas de copier-coller, c'est totalement inutile!)
        (et ok vaut toujours faux! donc retour en début de boucle !!!)

Et dans tous les cas, cette étape doit être recommencée jusqu'à ce que vous arriviez par vous-même à écrire un code sans erreur.... Et dans les deux jours qui suivent, on recommence... et en fin de semaine, pour ancrer tout cela, on recommence.

elif

On peut parfois avoir à enchaîner des conditions comme:

if condition1:
    action1
else:
    if condition2:
        action2
    else:
        if condition3:
            action3
        else:
            action

Python offre une possibilité pour éviter les nombreuses indentations de ce code (dans ce contexte, les indentations deviennent plutôt un obstacle à la lisibilité):

if condition1:
    action1
elif condition2:
    action2
elif condition3:
    action3
else:
    action

Exemple:

Si Antoine a au moins 18 ans:
    action1
sinon:
    si Antoine a au moins 16 ans:  # entre 16 et 18 ans
        action2
    sinon:
        si Antoine a au moins 14 ans: # entre 14 et 16 ans
            action3
        sinon:
            au lit!

deviendra :

age = ...
if age >= 18:
    action1
elif age >= 16:
    action2
elif age >= 14:
    action3
else:
    dodo