Recherche de site Web

Comment utiliser les instructions If/Else en Python : un guide pour débutants


Introduction

Les déclarations 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 aide à contrôler le flux d'exécution en exécutant différents blocs de code en fonction de la satisfaction ou non d'une condition.

Ce tutoriel Python fournit des étapes pour utiliser 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.")

Utiliser if-elif-else pour des conditions multiples

Lorsqu'il s'agit de plusieurs conditions à évaluer, la structure if-elif-else de Python est particulièrement utile. La clause elif (abréviation de "sinon si") vous permet de spécifier des conditions supplémentaires à vérifier si la condition initiale if n'est pas remplie. Cela permet de gérer de manière plus structurée et efficace des processus de prise de décision complexes dans 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 en une ligne (opérateur ternaire)

En Python, vous pouvez utiliser une syntaxe concise pour des déclarations if/else simples. Cela s'appelle l'Opérateur Tertiaire. C'est une expression conditionnelle en une seule ligne qui évalue à une valeur en fonction d'une condition.

Exemple :

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

Instructions conditionnelles imbriquées

Les instructions if imbriquées vous permettent d'évaluer plusieurs conditions au sein d'un seul bloc if. Cela 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 des instructions if, vous pouvez créer une méthode plus structurée et efficace pour gérer des processus de prise de décision complexes dans 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")

Gérer plusieurs conditions avec et, ou, pas

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

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 offre une alternative pour certains contrôles conditionnels. Cette nouvelle fonctionnalité est particulièrement utile lorsque vous avez une série de conditions à vérifier et que vous souhaitez éviter les instructions imbriquées if/else. L'instruction match-case est plus concise et plus facile à lire, rendant votre code plus maintenable et 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/elseInstruction match-case
SyntaxePlus verbeuxPlus concis
LisibilitéPeut être complexe pour plusieurs conditionsPlus facile à lire pour plusieurs conditions
Cas d'utilisationConvient pour des vérifications conditionnelles 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 chacun

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

Erreurs courantes et conseils de débogage

1. Erreurs d'indentation

Python utilise l'indentation pour définir des blocs de code. Une indentation manquante 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. Mauvaise utilisation 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. Gestion des 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 des instructions If Else

Vous pouvez utiliser la gestion des erreurs avec des instructions if else en Python. Voici un exemple de comment le faire :

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.")

FAQ

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, alors les conditions elif sont évaluées dans l'ordre.

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

si instructionelif instruction
Toujours vérifié en premierÉvalué uniquement si if est faux
Peut avoir plusieurs instructions ifPeut avoir plusieurs instructions elif
Peut avoir un bloc elsePeut avoir un bloc else

Rappelez-vous, seul un bloc de code sera exécuté. Si l'instruction if est true, 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 false, le bloc else sera exécuté.

Voici un exemple de comment utiliser 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 if en Python ?

Assurez-vous que chaque bloc de code est correctement indenté en utilisant quatre espaces ou une tabulation.

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

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

Voici un exemple de la façon d'utiliser des 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 au switch-case en Python ?

Oui, Python 3.10 a introduit match-case, qui se comporte de manière similaire à une instruction switch.

Voici un exemple de la façon d'utiliser 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 déclarations if/else est crucial pour la prise de décision dans la programmation Python. En maîtrisant la logique conditionnelle, vous pouvez écrire un 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 du travail avec des boucles en Python 3.