Concepts avancés
Conditions imbriquées
Les conditions peuvent être imbriquées les unes dans les autres. Par exemple:
Ces conditions peuvent être très utiles pour résoudre des problèmes complexes. Voici un exemple avec la vie réelle
- Si le client est membre, il a un tarif réduit de 10%
- Si le client n'est pas membre, mais a un code promo, il a un tarif réduit de 5%
- Si le client n'est pas membre et n'a pas de code promo, mais il a une valeur d'achat supérieure à 100$, il a un tarif réduit de 3%
- Si aucune de ces conditions n'est remplie, le client paye le prix normal
Ce problème peut être résolu avec une structure conditionnelle imbriquée, comme ceci:
Il est possible d'imbriquer des conditions indéfiniment, mais il est conseillé de ne pas en faire un usage abusif, car cela rend le code plus difficile à lire et à maintenir. Typiquement, on essaie d'utiliser jusqu'à 2 ou 3 niveaux d'imbrication maximum.
Opérateur ternaire
L'opérateur ternaire est une forme condensée de la structure conditionnelle if. Il est souvent utilisé pour affecter une valeur à une variable en fonction d'une condition. Par exemple:
Dans cet exemple, si la condition est vraie, la variable prend la valeur valeur1, sinon elle prend la valeur valeur2. Bien que cet opérateur est pratique, il est a noter que l'on peut faire la même chose avec une structure conditionnelle if et else de cette manière:
Switch
Depuis Python 3.10, il est possible d'utiliser une structure conditionnelle match qui est similaire à la structure switch que l'on retrouve dans d'autres langages de programmation. Cette structure permet de comparer une valeur à une liste de valeurs et d'exécuter un bloc de code en fonction de la valeur. Voici un exemple:
Dans cet exemple, la valeur est comparée à valeur1, valeur2, valeur3 et _. Si la valeur est égale à valeur1, le bloc de code 1 est exécuté. Si la valeur est égale à valeur2, le bloc de code 2 est exécuté et ainsi de suite. Si aucune des valeurs n'est égale à la valeur, le bloc de code 4 est exécuté. Encore une fois, cette fonctionalité pourrait être faite avec une structure conditionnelle if et elif, mais le match rend le code plus lisible lorsque l'on a un nombre important de conditions à vérifier.