Créer des conditions complexes avec des opérateurs logiques (et, ou non)

Terminée

Tip

Pour plus d’informations, consultez l’onglet Texte et images !

Parfois, une condition unique n’est pas suffisante pour prendre une décision. Vous pouvez vérifier si deux choses sont vraies ou si au moins une d’entre elles est vraie. Par exemple, vous devrez peut-être vérifier si un compte est actif et financé, ou si un utilisateur est administrateur ou modérateur.

les opérateurs logiques de Python vous permettent de combiner plusieurs conditions en une seule expression.

Les trois opérateurs logiques

Operator Qu’est-ce que cela fait ? Exemple Result
and True seulement si les deux côtés sont True True and False False
or True si au moins un côté est True True or False True
not Retourne une valeur booléenne not True False

Utilisation et (toutes les conditions doivent être remplies)

Utilisez and quand toutes les conditions doivent être remplies pour exécuter un bloc de code :

age = 20
has_ticket = True

if age >= 18 and has_ticket:
    print("Entry granted.")
else:
    print("Entry denied.")

Output:

Entry granted.

Utilisation ou (au moins une condition doit être remplie)

Utilisez or quand une condition suffit pour exécuter un bloc de code. Dans la langue quotidienne, généralement « ou » signifie « un ou l’autre, mais pas les deux ». Toutefois, dans Python, « ou » signifie « un ou l’autre, ou les deux ».

is_weekend = False
is_holiday = True

if is_weekend or is_holiday:
    print("The office is closed.")

Output:

The office is closed.

Utilisation non (inverser une condition)

L’opérateur not inverse une valeur booléenne. Si la condition est True, elle devient False, et vice versa. Cet opérateur est utile lorsque vous souhaitez vérifier l’absence d’une condition.

is_logged_in = False

if not is_logged_in:
    print("Please log in to continue.")

Output:

Please log in to continue.

Combinaison d’opérateurs

Vous pouvez combiner and, oret not dans une seule expression. Utilisez toujours des parenthèses pour regrouper des conditions et faciliter la lecture de votre code :

score = 85
has_extra_credit = True
is_past_due = False

# Example: Pass if (Score is high OR extra credit is earned) AND the work isn't late
if (score >= 90 or has_extra_credit) and not is_past_due:
    print("Requirement met.")

Éviter les erreurs de raccourci

Lorsque vous comparez une variable unique à plusieurs valeurs, vous pouvez être tenté d’écrire quelque chose comme suit :

# Incorrect: This code will not work as intended
if score == 90 or 100:
    print("You got an A!")

Dans ce cas, Python évalue d’abordscore == 90, qui est soit True ou False. Ensuite, il évalue 100, ce qui est toujours True. Les nombres non nuls et les chaînes non vides comptent toujours comme True dans Python. Par conséquent, la condition est toujours True, quelle que soit la valeur de score. Comparez toujours chaque valeur explicitement :

# Correct: Each value is compared explicitly
if score == 90 or score == 100:
    print("You got an A!")