Aller au contenu

Instructions conditionnelles

Les instructions conditionnelles permettent d'effectuer différentes actions selon certaines conditions préalables, analysées par le programme grâce à des tests de comparaison ou d'appartenance.

Si... Alors... Sinon...

Syntaxe

1
2
3
4
5
6
if condition :
    instruction1 (bloc) lorsque condition renvoie True
else:
    instruction2 (bloc) lorsque condition renvoie False

# Suite du programme en revenant au début de la nouvelle ligne

Remarques

  • Après if ...: et else:, il faut mettre deux points « : ».
  • L'instruction else n'est pas obligatoire.
  • Attention à l'indentation obligatoire après le « deux points ».

Exemple

Complétez la définition de la fonction transforme() en respectant ses spécifications.

1
2
3
4
5
6
def transforme(n):
    """
    n - int, entier strictement positif
    Sortie: int - le tiers de n lorsque n est un multiple de 3,
            le double de n auquel on enlève 1 dans le cas contraire.
    """
Solution

Attention à la sortie : la fonction doit renvoyer un entier. Il faut donc utiliser le quotient entier « // ».

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
def transforme(n):
    """
    n - int, entier strictement positif
    Sortie: int - le tiers de n lorsque n est un multiple de 3,
            le double de n auquel on enlève 1 dans le cas contraire.
    """
    if n%3 == 0:
        return n//3
    else:
        return 2*n-1

Plusieurs tests imbriqués

Lorsqu'il y a plus de deux cas à envisager, on peut imbriquer les if… else… mais le code devient difficile à lire. Pour éviter ces imbrications, on utilisera elif… qui est la contraction de « else if » :

Si... Alors... Sinon Si...

Syntaxe

1
2
3
4
5
6
7
8
if Test1 :
    instruction1 (bloc) lorsque Test1 renvoie True
elif Test2:
    instruction2 (bloc) lorsque Test1 renvoie False puis Test2 renvoie True
else:
    instruction3 (bloc) lorsque Test1 puis Test2 renvoient False

# Suite du programme en revenant au début de la nouvelle ligne

Remarque

Il peut y avoir plusieurs imbrications de elif ...: (attention au « : »).

Exemple

Voici un exemple d'échelle de Beaufort simplifiée pour caractériser la force du vent :

Vitesse en km/h Force
jusqu'à 28 1
de 29 à 49 2
de 50 à 88 3
de 89 à 117 4
supérieur ou égale à 118 5

Complétez la définition de la fonction force_vent() qui renvoie la force du vent selon la vitesse (nombre entier) en km/h indiquée en paramètre.

1
2
3
4
5
def force_vent(vitesse):
    """
    vitesse - int, entier positif représentant la vitesse du vent, en km/h
    Sortie: int - force du vent correspondant à cette vitesse
    """
Une solution
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
def force_vent(vitesse):
    """
    vitesse - int, entier positif représentant la vitesse du vent, en km/h
    Sortie: int - force du vent correspondant à cette vitesse
    """
    if vitesse <= 28:
        return 1
    elif 29 <= vitesse <= 49:
        return 2
    elif 50 <= vitesse <= 88:
        return 3
    elif 89 <= vitesse <= 117:
        return 4
    else:
        return 5