Recherche de site Web

Comment utiliser les instructions if/else en Python : Guide du débutant


Introduction

Les instructions conditionnelles sont une partie fondamentale de la programmation, permettant au code de prendre des décisions en fonction de certaines conditions. En Python, l’instruction if/else permet de contrôler le flux d’exécution en exécutant différents blocs de code selon qu’une condition est remplie ou non.

Ce tutoriel Python fournit des étapes sur l’utilisation des instructions if/else, couvrant la syntaxe, les conditions multiples, les instructions imbriquées, les erreurs courantes et les meilleures pratiques.

Qu’est-ce qu’une instruction If/Else en Python ?

Une instruction if/else en Python est une structure de contrôle qui exécute un bloc de code si une condition est évaluée à True, sinon, elle exécute un bloc de code alternatif.

Syntaxe de base

if condition:
    # Code to execute if condition is True
else:
    # Code to execute if condition is False

exemple:

age = int(input("Enter your age: "))
if age >= 18:
    print("You are eligible to vote.")
else:
    print("You are not eligible to vote.")

Utilisation de if-elif-else pour plusieurs conditions

Lorsqu’il s’agit de plusieurs conditions qui doivent être évaluées, la structure if-elif-else de Python est particulièrement utile. La clause elif (abréviation de « else if ») vous permet de spécifier des conditions supplémentaires pour vérifier si la condition initiale if n’est pas remplie. Cela permet de gérer plus structuramment et efficacement des processus de prise de décision complexes au sein de votre code.

exemple:

marks = int(input("Enter your marks: "))
if marks >= 90:
    print("Grade: A")
elif marks >= 75:
    print("Grade: B")
elif marks >= 60:
    print("Grade: C")
else:
    print("Grade: F")

Instructions if/else d’une ligne (opérateur ternaire)

En Python, vous pouvez utiliser une syntaxe concise pour des instructions if/else simples. C’est ce qu’on appelle l’opérateur ternaire. Il s’agit d’une expression conditionnelle d’une ligne qui s’évalue à une valeur basée sur une condition.

exemple:

num = int(input("Enter a number: "))
result = "Even" if num % 2 == 0 else "Odd"
print(result)

Instructions If imbriquées

Les instructions if imbriquées vous permettent d’évaluer plusieurs conditions au sein d’un seul bloc if. Ceci est particulièrement utile lorsque vous devez vérifier une série de conditions avant d’exécuter un bloc de code spécifique. En imbriquant les instructions if, vous pouvez créer un moyen plus structuré et plus efficace de gérer des processus de prise de décision complexes au sein de votre code.

exemple:

num = int(input("Enter a number: "))
if num > 0:
    if num % 2 == 0:
        print("Positive Even Number")
    else:
        print("Positive Odd Number")
else:
    print("Negative Number or Zero")

Gestion de plusieurs affections avec et, ou, non

Python fournit des opérateurs logiques pour combiner plusieurs conditions dans une seule expression. Cela permet des processus de prise de décision plus complexes au sein de votre code. Les opérateurs logiques disponibles en Python sont and, or, and not.

exemple:

temp = int(input("Enter the temperature: "))

if temp > 30 and temp < 40:
    print("It's a hot day!")
else:
    print("It's not a hot day.")

Example using 'or' operator
if temp > 30 or temp < 10:
    print("Temperature is extreme!")

Example using 'not' operator
if not (temp > 30 and temp < 40):
    print("It's not a hot day.")

Quand utiliser if/else vs. match-case (Python 3.10+)

Avec Python 3.10, l’instruction match-case fournit une alternative pour certaines vérifications conditionnelles. Cette nouvelle fonctionnalité est particulièrement utile lorsque vous avez une série de conditions à vérifier et que vous souhaitez éviter les instructions if/else imbriquées. L’instruction match-case est plus concise et plus facile à lire, ce qui rend votre code plus facile à gérer et plus efficace.

Exemple de match-case :

def get_day_name(day):
    match day:
        case 1:
            return "Monday"
        case 2:
            return "Tuesday"
        case _:
            return "Invalid day"

Comparaison des instructions if/else et match-case

CaractéristiqueInstructions if/elseDéclaration de cas de match
SyntaxePlus verbeuxPlus concis
LisibilitéPeut être complexe pour plusieurs conditionsPlus facile à lire pour plusieurs affections
Cas d’utilisationConvient pour les contrôles conditionnels simplesIdéal pour vérifier plusieurs valeurs d’une seule variable
PerformanceAucune différence significativeAucune différence significative
Version de PythonPris en charge dans toutes les versions de PythonIntroduit dans Python 3.10

Quand utiliser chaque

  • Utilisez les instructions if/else pour de simples vérifications conditionnelles ou lorsque vous travaillez avec des versions de Python antérieures à la version 3.10.
  • Utilisez des instructions match-case lorsque vous devez vérifier plusieurs valeurs d’une seule variable, en particulier dans Python 3.10 ou version ultérieure.

Erreurs courantes et conseils de débogage

1. Erreurs d’indentation

Python utilise l’indentation pour définir des blocs de code. L’absence d’indentation provoquera une erreur.

exemple:

if True:
    print("This will cause an error!")  # IndentationError

Exemple fixe :

if True:
    print("This will not cause an error!")

2. Utilisation abusive des opérateurs booléens

Des opérations logiques incorrectes peuvent entraîner des résultats inattendus.

exemple:

if age >= 18 and age <= 60:  # Correct
if age >= 18 or <= 60:  # Incorrect

3. Gérer les entrées inattendues

Utilisez la gestion des exceptions lors du traitement des entrées utilisateur.

try:
    num = int(input("Enter a number: "))
except ValueError:
    print("Invalid input! Please enter a number.")

4. Gestion des erreurs avec les instructions If Else

Vous pouvez utiliser la gestion des erreurs avec les instructions if else en Python. Voici un exemple de la procédure à suivre :

try:
    # Code that may raise an exception
    num = int(input("Enter a number: "))
except ValueError:
    # Code to handle the exception
    print("Invalid input! Please enter a number.")
else:
    # Code to execute if no exception is raised
    print("You entered a valid number.")
finally:
    # Code to execute regardless of whether an exception was raised
    print("Thank you for using this program.")

Foire aux questions

1. Puis-je utiliser plusieurs conditions elif en Python ?

Oui, vous pouvez ajouter autant de conditions elif que nécessaire pour vérifier plusieurs scénarios.

if condition1:
    # code to execute if condition1 is True
elif condition2:
    # code to execute if condition2 is True
elif condition3:
    # code to execute if condition3 is True
else:
    # code to execute if all conditions are False

2. Quelle est la différence entre if et elif en Python ?

Une instruction if est toujours vérifiée en premier. Si if est faux, les conditions elif sont évaluées dans l’ordre.

Voici un tableau mettant en évidence les différences :

si DéclarationDéclaration elif
Toujours vérifié en premierÉvalué uniquement si si est false
Peut avoir plusieurs instructions ifPeut avoir plusieurs instructions elif
Peut avoir un bloc elsePeut avoir un bloc else

N’oubliez pas qu’un seul bloc de code sera exécuté. Si l’instruction if est vraie, les blocs elif et else seront ignorés. Si l’instruction if est false, le bloc elif sera exécuté. Si l’instruction elif est fausse, le bloc else sera exécuté.

Voici un exemple d’utilisation de if, elif et else en Python :

num = int(input("Enter a number: "))

if num > 0:
    print("The number is positive.")
elif num == 0:
    print("The number is zero.")
else:
    print("The number is negative.")

3. Comment éviter les erreurs d’indentation dans les instructions Python if ?

Assurez-vous que chaque bloc de code est correctement mis en retrait à l’aide de quatre espaces ou d’une tabulation.

4. Quelle est la meilleure façon de gérer des conditions si/sinon complexes ?

Pour plus de lisibilité, décomposez les conditions complexes en fonctions plus petites ou utilisez des opérateurs logiques.

Voici un exemple d’utilisation d’opérateurs logiques en Python :

num = int(input("Enter a number: "))

if num > 0 and num % 2 == 0:
    print("The number is positive and even.")
elif num > 0 and num % 2 != 0:
    print("The number is positive and odd.")
elif num == 0:
    print("The number is zero.")
else:
    print("The number is negative.")

5. Existe-t-il une alternative à la casse inverse en Python ?

Oui, Python 3.10 a introduit match-case, qui se comporte de la même manière qu’une instruction switch.

Voici un exemple d’utilisation de match-case en Python :

def match_case_example(argument):
    match argument:
        case 1:
            print("You chose 1.")
        case 2:
            print("You chose 2.")
        case 3:
            print("You chose 3.")
        case _:
            print("Invalid choice.")

Conclusion

Comprendre les instructions if/else est crucial pour la prise de décision en programmation Python. En maîtrisant la logique conditionnelle, vous pouvez écrire du code plus efficace et sans erreur.

Si vous souhaitez en savoir plus sur Python, consultez ces tutoriels :

  • Comment écrire des instructions conditionnelles en Python 3
  • Comment utiliser les instructions break, continue et pass lors de l’utilisation de boucles en Python 3.