0
votes

Comparaison Python>, <

Quelqu'un peut-il expliquer ce qui suit

Line 1 - 5<7<3  False 
Line 2 - (5<7)<3  True
Line 3 - 5<(7<3)  False
Line 4 - 5>(7<3)  True
Line 5 - (5<7)>3  False
Line 6 - (5<7)<1  False

Le résultat est:

print("5<7<3 ",5<7<3) 
print("(5<7)<3 ",(5<7)<3) 
print("5<(7<3) ",5<(7<3)) 
print("5>(7<3) ", 5>(7<3))
print("(5<7)>3 ",(5<7)>3)
print("(5<7)<1 ",(5<7)<1)

Je ne sais pas comment se fait le résultat des lignes 3 et 4 donnent Vrai et Faux. Si je comprends bien x


5 commentaires

(5 <7) est vrai. True <3 est True, car True == 1.


Comprenez-vous les autres lignes avec (...) ? Si oui, comment interprétez-vous ces lignes.


Dupliqué possible de Associativité des opérateurs de comparaison à Python


@Georgy Je ne pense pas que cela réponde vraiment à la question. Savoir comment fonctionne le chaînage d'opérateurs est une chose, mais vous devez aussi savoir que les booléens sont des entiers.


@ Aran-Fey Tout y est stackoverflow.com/a/32536368/7851470


3 Réponses :


0
votes

Ligne 3 - (7 <3) se résout à 0, ce qui n'est pas plus de 5 => Faux.
Ligne 4 - (7 <3) se résout à 0 qui est inférieur à 5 => Vrai.


0 commentaires

2
votes

Ligne 3 - 5 <(7 <3) Faux

(7 <3) est False qui vaut 0 dans le contexte de Python, maintenant 5 <0 est False .

Ligne 4 - 5> (7 <3) Vrai

De même, 7 <3 est False qui est également 0 , donc 5> 0 est Vrai .

Pour les autres lignes, si une condition conduit à True , elle sera rendue comme 1 par Python pour les vérifications de condition suivantes.


0 commentaires

0
votes

Evaluez simplement la réponse de la parenthèse:

Et rappelez-vous False = 0 et True = 1

Donc, lignes 3 et 4:

print("5<(7<3) ",5<(7<3)) 
print("5>(7<3) ", 5>(7<3))

serait

1) 5

2) 5> Faux i, e 5> 0 qui est Vrai


0 commentaires