Combiner des conditions avec and, or, not
Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.
Créer un compteMéthodes
Méthode
Pour combiner plusieurs conditions en Python :
- Tester que deux conditions sont vraies en même temps : utiliser and (« et »). A and B est vraie si et seulement si A et B le sont.
- Tester qu'au moins une condition est vraie : utiliser or (« ou »). A or B est vraie dès que l'une au moins des deux est vraie.
- Inverser une condition : utiliser not (« non »). not A est vraie si et seulement si A est fausse.
- Encadrer par des parenthèses les conditions quand on les combine, pour lever toute ambiguïté : (A and B) or C.
Appartenance à un intervalle
On veut tester si un nombre x appartient à l'intervalle $[0~;~10]$ :
x = float(input("Entrez un nombre : "))
if x >= 0 and x <= 10 :
print("x appartient à [0 ; 10].")
else :
print("x n'appartient pas à [0 ; 10].")
Étape 1 : Pour que x soit dans l'intervalle, il faut que les deux conditions x >= 0 et x <= 10 soient vérifiées. On utilise donc and.
Étape 2 : Pour x = 7 : 7 >= 0 est vraie et 7 <= 10 est vraie. La condition composée est vraie, on affiche « appartient ».
Étape 3 : Pour x = 15 : 15 >= 0 est vraie mais 15 <= 10 est fausse. La condition composée est fausse : on affiche « n'appartient pas ».
Remarque : Python accepte aussi l'écriture naturelle 0 <= x <= 10, équivalente à x >= 0 and x <= 10.
Autoriser deux noms d'utilisateur
On veut accepter « Alice » ou « Bob » comme utilisateur valide :
nom = input("Votre nom : ")
if nom == "Alice" or nom == "Bob" :
print("Bienvenue,", nom, "!")
else :
print("Accès refusé.")
Étape 1 : Il suffit que l'une des deux conditions soit vraie pour ouvrir l'accès : on utilise or.
Étape 2 : Pour nom = « Alice » : la première condition est vraie, donc la composée est vraie.
Étape 3 : Pour nom = « Charlie » : les deux conditions sont fausses, la composée est fausse, l'accès est refusé.
Inverser une condition avec not
On veut afficher « nombre non nul » quand un nombre x n'est pas égal à 0 :
x = float(input("Entrez un nombre : "))
if not (x == 0) :
print("x est non nul.")
Étape 1 : x == 0 est une condition qui vaut True si x = 0, False sinon.
Étape 2 : not (x == 0) inverse ce résultat : vraie si et seulement si $x \ne 0$.
On aurait pu écrire plus simplement if x != 0 :. L'opérateur not est surtout utile avec des conditions complexes ou quand on travaille avec une variable booléenne.
Attention
Ne pas écrire x == 1 or 2 pour tester si x vaut 1 ou 2 : cette expression est toujours vraie car Python l'interprète comme (x == 1) or 2, et le nombre 2 est considéré comme vrai. La bonne écriture est x == 1 or x == 2.