Python au lycée (2) : Les instructions conditionnelles Méthode

Combiner des conditions avec and, or, not

Durée estimée
5 minutes
Votre progression

Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.

Créer un compte

Méthode

Pour combiner plusieurs conditions en Python :

  1. 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.
  2. 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.
  3. Inverser une condition : utiliser not (« non »). not A est vraie si et seulement si A est fausse.
  4. 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.

Pour s'entraîner