Il est parfois nécessaire d'effectuer plusieurs comparaisons successives sur un même élément voire entre plusieurs éléments. La forme d'écriture la plus simple va demander d'écrire de nombreuses lignes sans pour autant augmenter la lisibilité :
n = input()
if n < 10 :
if n > 3 :
print("n est compris entre 3 et 10")
De la même façon, la ligne qui suit teste si le chiffre est bien dans la plage souhaitée :
n = input()
if n < 10 and n > 3 :
print("n est compris entre 3 et 10")
L'opérateur *and* permet ainsi d'associer les deux comparaisons en une seule. Dans ce cas, la condition est remplie si le chiffre est compris dans les deux expressions cumulées.
Nous pourrions souhaiter que seulement l'une des expressions soit validée. Dans ce cas, le recours à *or* sera plus judicieux :
if n < 10 or n > 20 :
print("ok")
sera valable si le chiffre saisi est inférieur à 10 mais aussi s'il est supérieur à 20.
Enfin, l'opérateur *not* peut être utilisé pour exclure une possibilité :
if n not 10 :
print("ok")
Dans ce cas, il agira un peu comme *!=*. L'avantage de ces opérateurs est cependant aussi de pouvoir s'appliquer à un type spécial, dit booléen et qui n'accepte que deux possibilités : *True* ou *False*
Ce type d'opérateur est utile pour mémoriser la réussite d'un test, sans pour autant que sa valeur soit préservée (par exemple, lorsque vous êtes connecté à un compte web, on se souvient que vous êtes validé quand vous changez de page, mais il n'est pas nécessaire de renvoyer vos données), ou encore lorsque python renvoie ce type comme résultat. Ainsi, on peut remplacer :
if n < 10 or n > 20 :
print("ok")
par
if n < 10 or n > 20 :
n_ok = True
et réutiliser ensuite ce résultat :
if n_ok == True :
print("ok")
>> ok
ou
if n_ok is True :
print("ok")
>> ok
Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.
Vous devriez rafraîchir la page.