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é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.