Meilleures pratiques pour les instructions conditionnelles en Python

Meilleures pratiques pour les instructions conditionnelles en Python

Cet article explique les meilleures pratiques pour les instructions conditionnelles en Python.

YouTube Video

Meilleures pratiques pour les instructions conditionnelles en Python

L'instruction if en Python est une structure fondamentale pour la mise en œuvre de la bifurcation conditionnelle, et elle impacte grandement la lisibilité et la maintenabilité du code. Ici, nous discuterons en détail des meilleures pratiques pour utiliser les instructions if.

Utilisez des expressions conditionnelles explicites

Écrivez les expressions conditionnelles de manière concise et explicite, en évitant les déclarations redondantes.

1condition = True
2
3### Bad Example
4if condition == True:
5    pass
6
7### Good Example
8if condition:
9    pass
  • En Python, vous pouvez indiquer qu'une condition est vraie en écrivant if condition:.

Combinaison de plusieurs conditions

Lorsque vous combinez plusieurs conditions, utilisez and ou or. Cependant, lorsque les expressions conditionnelles deviennent complexes, la lisibilité peut diminuer, donc envisagez les ajustements suivants :.

 1age = 15
 2is_student = True
 3
 4### Bad Example
 5# Complex condition
 6if (age > 18 and age < 65) or (is_student and age > 15):
 7    pass
 8
 9### Good Example
10# Improving readability
11is_working_age = 18 < age < 65
12is_eligible_student = is_student and age > 15
13
14if is_working_age or is_eligible_student:
15    pass
  • En divisant les conditions et en les assignant à des variables, la lisibilité peut être améliorée.

Évaluation en court-circuit de and/or

Dans les expressions conditionnelles utilisant and ou or, si le résultat peut être déterminé seulement par la valeur de gauche, une évaluation en court-circuit se produit et la partie droite n'est pas évaluée. Comprendre cela vous aide à éviter des traitements inutiles et à prévenir les erreurs.

 1user = None
 2def expensive_check():
 3    return True
 4
 5# Example of short-circuiting with 'and'
 6if user and user.is_active:
 7    # If user is None, user.is_active will NOT be evaluated
 8    print("Active user found.")
 9
10# Example of short-circuiting with 'or'
11if user.is_admin or expensive_check(user):
12    # If user.is_admin is True, expensive_check will NOT be called.
13    print("Access granted.")
14else:
15    print("Access denied.")
  • En utilisant l'évaluation en court-circuit, vous pouvez améliorer l'efficacité et la sécurité du traitement.

Priorité de and et or

and a une priorité plus élevée que or. Par conséquent, lorsque vous combinez des conditions de manière naïve, vous pouvez obtenir des résultats inattendus. Il est important d'utiliser des parenthèses pour clarifier vos intentions.

 1age = 15
 2is_student = True
 3
 4### Unclear example
 5# This is interpreted as: age > 18 and (age < 65 or is_student)
 6if age > 18 and age < 65 or is_student:
 7    pass
 8
 9### Clear example
10# Explicit parentheses make the intended logic obvious
11if (age > 18 and age < 65) or is_student:
12    pass
  • En utilisant des parenthèses, vous pouvez clarifier la priorité de and et or, réduisant ainsi le risque de bogues inattendus.

Comprenez les valeurs Truthy et Falsy

En Python, les valeurs suivantes sont évaluées comme False :.

  • Aucun
  • Faux
  • Le nombre 0 (y compris 0.0)
  • Types de séquences vides (tels que listes, tuples ou chaînes vides)
    • Exemples : [], (), ""
  • Dictionnaire vide
    • Exemple : {}

Exploiter cela peut aider à simplifier vos expressions conditionnelles.

1items = [1, 2, 3]
2
3### Bad Example
4if len(items) > 0:
5    pass
6
7### Good Example
8if items:
9    pass

Utilisation correcte de elif et else

Lors de l'évaluation de plusieurs conditions, utilisez elif. Utilisez else pour définir un comportement par défaut à la fin.

 1score = 80
 2
 3if score >= 90:
 4    grade = "A"
 5elif score >= 80:
 6    grade = "B"
 7elif score >= 70:
 8    grade = "C"
 9else:
10    grade = "F"
  • else n'est pas obligatoire. Si toutes les conditions sont couvertes, cela peut être omis.
  • Faites attention à l'ordre des expressions conditionnelles et organisez-les logiquement sans redondance.

Limitez la profondeur de l'imbrication.

Une imbrication profonde des instructions if rend le code plus difficile à lire.

 1def access_resource():
 2    return True
 3
 4### Bad Example
 5def deep_nest(user, resource):
 6    if user.is_authenticated:
 7        if user.has_permission:
 8            if resource.is_available:
 9                access_resource()
10
11### Good Example
12def early_return(user, resource):
13    if not user.is_authenticated:
14        return
15    if not user.has_permission:
16        return
17    if not resource.is_available:
18        return
19
20    access_resource()
  • Utiliser des retours anticipés peut réduire l'imbrication et rendre le code plus concis.

Évitez d'utiliser des instructions if sur une seule ligne.

Il est possible d'écrire des instructions if sur une seule ligne, mais cela peut réduire la lisibilité.

 1condition = False
 2def do_something():
 3    return True
 4
 5### Bad Example
 6if condition: do_something()
 7
 8### Good Example
 9if condition:
10    do_something()
  • L'utilisation d'instructions if sur une seule ligne n'est acceptable que pour des conditions ou actions courtes, mais évitez d'écrire du code trop verbeux.

Simplifier avec l'opérateur ternaire ou or

Pour des branches conditionnelles simples, utiliser l'opérateur ternaire ou or peut rendre votre code plus concis. Cependant, en abuser peut rendre votre code plus difficile à lire, il faut donc les utiliser uniquement pour des conditions simples et intuitives.

 1is_admin = True
 2input_name = None
 3
 4# Regular if statement
 5if is_admin:
 6    role = "Administrator"
 7else:
 8    role = "User"
 9
10# Simplified using an inline if
11role = "Administrator" if is_admin else "User"
12
13# Use 'or' to provide a default value
14name = input_name or "Guest"
  • Pour des conditions simples, l'utilisation de l'opérateur ternaire ou de or peut rendre votre code plus court et plus facile à comprendre.

Mise en cache des expressions conditionnelles.

Les expressions conditionnelles nécessitant des calculs coûteux ou des appels de fonctions peuvent être mises en cache dans des variables pour améliorer les performances.

 1def expensive_function():
 2    pass
 3
 4def another_expensive_function():
 5    pass
 6
 7### Bad Example
 8if expensive_function() and another_expensive_function():
 9    pass
10
11### Good Example
12result1 = expensive_function()
13result2 = another_expensive_function()
14if result1 and result2:
15    pass

Résumé

Les instructions if de Python sont des outils simples et puissants, mais une mauvaise utilisation peut rendre le code complexe et difficile à lire. En adoptant les meilleures pratiques présentées ici, vous pouvez améliorer la lisibilité, la maintenabilité et l'efficacité de votre code.

Vous pouvez suivre l'article ci-dessus avec Visual Studio Code sur notre chaîne YouTube. Veuillez également consulter la chaîne YouTube.

YouTube Video