Python Déclarations conditionnelles : IF…Else, ELIF et Switch Case

⚡ Résumé intelligent

Python Les instructions conditionnelles orientent le flux d'exécution du programme en n'exécutant des blocs de code spécifiques que lorsque des expressions booléennes sont vraies. Elles comprennent les instructions if, else, elif, les instructions if imbriquées, l'opérateur ternaire et la correspondance de modèles structurels pour une logique claire et orientée décision.

  • Concept de base: Une instruction if exécute son bloc indenté uniquement lorsque la condition est vraie, constituant ainsi le fondement de la prise de décision. Python.
  • Alternatives à la gestion : Ajoutez else pour un chemin de repli et elif pour tester des conditions supplémentaires en séquence sans imbrication profonde.
  • Évitez les erreurs de logique : Utilisez une seule chaîne if-elif-else plutôt que des instructions if indépendantes lorsqu'un seul résultat doit s'appliquer.
  • Rédiger de façon concise Code: Utilisez l'expression ternaire valeur_si_vrai si condition sinon valeur_si_faux pour attribuer une valeur sur une seule ligne lisible.
  • Branchement moderne : Remplacez les longues chaînes elif par une table de correspondance de dictionnaires.ping ou l'instruction match-case introduite dans Python 3.10 pour une sélection multivoies plus propre.

Python Expressions conditionnelles

Que sont les instructions conditionnelles dans Python?

Instructions conditionnelles dans Python Ils effectuent différents calculs ou actions selon qu'une contrainte booléenne spécifique est évaluée à vrai ou à faux. Ils permettent à un programme de prendre des décisions et de suivre différents chemins au lieu d'exécuter chaque ligne séquentiellement. PythonLes instructions conditionnelles sont gérées par le if instruction et ses compagnons : else, elif et if imbriqué.

Qu'est-ce que le Python Si déclaration ?

Le Python if est utilisé pour les opérations de prise de décision. Il contient un bloc de code qui s'exécute uniquement si la condition spécifiée dans l'instruction if est vraie. Si la condition est fausse, l'instruction else (facultative) est exécutée à la place, contenant le code de la condition else. Lorsque vous souhaitez agir sur une condition alors qu'une autre est fausse, vous utilisez le Python instruction if-else.

Python if Syntaxe de l'instruction :

if expression:
    statement
else:
    statement

Python si…sinon

Python Organigramme if…else montrant les branches vrai et faux

Le diagramme ci-dessus illustre le flux de contrôle à travers une instruction if-else. Prenons un exemple de Python L'instruction if-else en action :

Python Exemple de sortie d'une instruction if dans l'éditeur

# Example file for working with conditional statements
def main():
    x, y = 2, 8
    if(x < y):
        st = "x is less than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Ligne 3: Nous définissons deux variables x, y = 2, 8.
  • Code Ligne 4: L'instruction if vérifie la condition x < y, qui est Vrai dans ce cas.
  • Code Ligne 5: La variable st est définie sur « x est inférieur à y ».
  • Code Ligne 6: La ligne print(st) affiche la valeur de st, qui est « x est inférieur à y ».

Que se passe-t-il lorsque la condition « si » n'est pas remplie ?

En nous appuyant sur l'exemple précédent, voyons ce qui se passe lorsque la condition « si » est remplie. Python La condition n'est pas remplie. Lorsque la condition est fausse et qu'aucune branche « else » n'existe, le code indenté est entièrement ignoré.

Python erreur lorsque la condition « si » n'est pas remplie

# Example file for working with conditional statements
def main():
    x, y = 8, 4
    if(x < y):
        st = "x is less than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Ligne 3: Nous définissons deux variables x, y = 8, 4.
  • Code Ligne 4: L'instruction if vérifie la condition x < y, qui est Faux dans ce cas.
  • Code Ligne 5: La variable st est pas réglé sur « x est inférieur à y ».
  • Code Ligne 6: La ligne print(st) tente d'afficher une variable qui n'a jamais été déclarée, donc Python soulève un NomErreur.
⚠ Attention : Utiliser une variable qui n'est initialisée qu'à l'intérieur d'un bloc `if` est une erreur fréquente chez les débutants. Il faut soit prévoir une clause `else`, soit attribuer une valeur par défaut à la variable avant l'instruction `if`.

Comment utiliser la condition « else »

Pour éviter l'erreur ci-dessus, vous pouvez ajouter une condition « else ». Cette condition est utilisée lorsqu'il faut évaluer une instruction en fonction d'une autre. Si une condition est fausse, le bloc « else » offre une alternative permettant au programme de produire un résultat.

Exemple :

Python Exemple de condition if-else

# Example file for working with conditional statements
def main():
    x, y = 8, 4
    if(x < y):
        st = "x is less than y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Ligne 3: Nous définissons deux variables x, y = 8, 4.
  • Code Ligne 4: L'instruction if vérifie la condition x < y, qui est Faux dans ce cas.
  • Code Ligne 6: Le flux d'exécution du programme passe par la condition else.
  • Code Ligne 7: La variable st est définie sur « x est plus grand que toi.
  • Code Ligne 8: La ligne print(st) affiche la valeur de st, qui est « x est supérieur à y ».

Lorsque la condition « else » ne fonctionne pas

La condition « else » ne garantit pas toujours le résultat escompté. Elle peut afficher une sortie erronée en cas d'erreur dans la logique du programme. Cela se produit généralement lorsqu'il faut justifier plus de deux instructions ou conditions. Un exemple permettra de mieux comprendre ce concept.

Ici, les deux variables sont identiques (8, 8), pourtant le résultat du programme est « x est supérieur à y » lequel est FAUXCela se produit car le programme vérifie la première condition (la condition « si ») et, en cas d'échec, affiche la seconde condition (la condition « sinon ») par défaut. Nous verrons ensuite comment corriger cette erreur.

Python sinon la condition produit un résultat incorrect

# Example file for working with conditional statements
def main():
    x, y = 8, 8
    if(x < y):
        st = "x is less than y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()

Comment utiliser la condition « elif »

Pour corriger l'erreur précédente commise par la condition else, nous pouvons utiliser le Elif L'instruction `elif` permet d'indiquer au programme de tester une troisième possibilité lorsque la première condition est fausse. Vous pouvez enchaîner plusieurs instructions `elif` pour vérifier des possibilités supplémentaires (quatrième, cinquième, etc.) dans votre code.

Exemple :

Python Exemple de condition elif

# Example file for working with conditional statements
def main():
    x, y = 8, 8
    if(x < y):
        st = "x is less than y"
    elif(x == y):
        st = "x is same as y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Ligne 3: Nous définissons deux variables x, y = 8, 8.
  • Code Ligne 4: L'instruction if vérifie la condition x < y, qui est Faux dans ce cas.
  • Code Ligne 6: Le flux d'exécution du programme atteint la condition elif. Celle-ci vérifie si x == y, ce qui est vrai.
  • Code Ligne 7: La variable st est définie sur « x est même que y. »
  • Code Ligne 10: Le programme sort de l'instruction if (il n'atteindra pas l'instruction else) et affiche st. Le résultat est « x est identique à y », ce qui est correct.

Comment exécuter une instruction conditionnelle avec un minimum de code ? Code

Maintenant que vous pouvez écrire des blocs if-elif-else complets, Python permet de condenser une condition simple en une seule ligne. Au lieu d'écrire du code distinct pour chaque branche, vous pouvez utiliser une expression ternaire (conditionnelle).

syntaxe:

value_if_true if condition else value_if_false

Exemple :

Python Exemple d'instruction conditionnelle ternaire sur une seule ligne

def main():
    x, y = 10, 8
    st = "x is less than y" if (x < y) else "x is greater than or equal to y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Ligne 2: Nous définissons deux variables x, y = 10, 8.
  • Code Ligne 3: La variable st prend la valeur « x est inférieur à y » si x < y ; sinon, elle prend la valeur « x est supérieur ou égal à y ». Comme x > y ici, st prend la deuxième valeur.
  • Code Ligne 4: Affiche la valeur de st et donne le résultat correct.

Python Instruction if imbriquée

Une instruction if imbriquée place une instruction if à l'intérieur d'une autre, ce qui est utile lorsqu'une décision dépend d'une seconde condition. L'exemple suivant illustre une instruction if imbriquée. Python qui calcule le navireping Le prix dépend du pays et du montant total de la commande.

total = 100
# country = "US"
country = "AU"

if country == "US":
    if total <= 50:
        print("Shipping Cost is $50")
    elif total <= 100:
        print("Shipping Cost is $25")
    elif total <= 150:
        print("Shipping Cost is $5")
    else:
        print("FREE")

if country == "AU":
    if total <= 50:
        print("Shipping Cost is $100")
    else:
        print("FREE")

Décommentez la ligne 2 du code ci-dessus, commentez la ligne 3 et exécutez à nouveau le code pour voir comment le résultat change pour un pays différent.

Changer d'instruction de cas dans Python

Qu'est-ce qu'une instruction Switch ?

Une instruction switch est une instruction de branchement multiple qui compare la valeur d'une variable aux valeurs spécifiées dans des instructions case. Pendant de nombreuses années, Python Le langage ne disposait pas d'une instruction switch, les développeurs ont donc implémenté le même comportement avec Python dictionnaire planping.

Exemple utilisant une carte de dictionnaireping:

def switch_example(argument):
    switcher = {
        0: "This is Case Zero",
        1: "This is Case One",
        2: "This is Case Two",
    }
    return switcher.get(argument, "nothing")

if __name__ == "__main__":
    argument = 1
    print(switch_example(argument))

Changer de cas avec correspondance (Python 3.10 et Later)

Depuis que Python 3.10 (sorti en octobre 2021), Python fournit un natif étui d'allumettes Cette instruction, également appelée correspondance de motifs structurels, offre une alternative claire et lisible aux longues chaînes elif et à l'approche par dictionnaire présentée ci-dessus.

def switch_example(argument):
    match argument:
        case 0:
            return "This is Case Zero"
        case 1:
            return "This is Case One"
        case 2:
            return "This is Case Two"
        case _:
            return "nothing"

if __name__ == "__main__":
    print(switch_example(1))

Le trait de soulignement (_) agit comme cas par défaut, correspondant à toute valeur non gérée par les cas précédents, tout comme la valeur par défaut dans une instruction switch traditionnelle.

✅ Astuce : Utilisez la correspondance des casses si vous êtes sur Python 3.10 ou plus récent. Pour les versions antérieures, consultez le dictionnaire.ping reste la méthode standard pour émuler une instruction switch.

if vs elif vs else : Comparaison rapide

Utilisez cette comparaison pour déterminer quelle structure conditionnelle correspond à votre logique de prise de décision.

DéclarationInteretQuand utiliser
ifExécute un bloc lorsqu'une condition est vraie.Une simple décision par oui ou par non
si…sinonFournit une solution de repli lorsque la condition est fausseDeux résultats mutuellement exclusifs
ElifTeste les conditions supplémentaires en séquenceTrois possibilités ou plus
Imbriqué siPlace une instruction if à l'intérieur d'une autre instruction if.Une décision qui dépend d'une seconde condition
TernaireCondense la structure if-else en une seule ligneAffectation de valeur simple
étui d'allumettesCompare une valeur à de nombreux modèlesRamification à plusieurs voies (Python 3.10 +)
⚠ Remarque : Python Deux d'entre eux ont atteint leur fin de vie le 1er janvier 2020, et tous les exemples de cet article utilisent Python 3 syntaxe. Dans Python 2. print était une instruction (par exemple, print st) et non une fonction ; par conséquent, le code ci-dessus ne s'exécutera pas sans modification sur Python 2.

FAQ

Une instruction if lance une décision et est toujours évaluée. Une instruction elif (else-if) n'est vérifiée que si les conditions if ou elif précédentes sont fausses, ce qui permet de tester plusieurs possibilités dans une même chaîne, tandis qu'un seul bloc s'exécute.

Oui. Depuis Python Dans la version 3.10, l'instruction `match-case` permet un branchement natif de type `switch` grâce à la correspondance de motifs structurels. Dans les versions antérieures, les développeurs émulent un `switch` à l'aide d'une table de hachage.ping avec la méthode get() pour fournir une valeur par défaut.

Utilisez une expression ternaire : valeur_si_vrai si condition sinon valeur_si_faux. Par exemple, st = « faible » si x < 10 sinon « élevé » attribue une valeur sur une seule ligne lisible, sans bloc if-else complet.

Oui. Les assistants de programmation IA peuvent générer, expliquer et déboguer la logique if-elif-else à partir d'une invite en langage clair. Ils sont utiles pour l'apprentissage, mais il est toujours conseillé de vérifier le résultat pour s'assurer que les conditions et l'indentation correspondent à la logique souhaitée.

Oui. La logique conditionnelle est fondamentale en IA. Les arbres de décision, les systèmes à base de règles et les pipelines de prétraitement des données s'appuient tous sur des structures conditionnelles (si-sinon) pour choisir les actions, filtrer les données et contrôler la manière dont un modèle traite les différentes entrées.

Résumez cet article avec :