Ma compréhension de l'opérateur all() est qu'il retourne vrai si tous les éléments d'un itératif retournent une valeur de vrai. Soit je suis tout malentendu, il est tout à fait fonction, ou quelque chose n'est pas tout à fait raison dans ce qui suit:Python all ([6,7,8,9]) = True. Mais 6 = Faux
>>> all([0, 7, 8, 9])
False
>>> all([6, 7, 8, 9])
True
>>> any([0, 7, 8, 9])
True
>>> 0 == True
False
>>> 1 == True
True
>>> 6 == True
False
>>> 7 == True
False
Quoi de neuf avec cela?
Modifier Bon, je reçois beaucoup de réponses expliquant que 0 est faux. Je comprends ça. 0 = Faux et 1 = Vrai. Mon problème est que 6 est retourné comme faux, mais lorsqu'il est testé dans le cadre d'une liste, il renvoie vrai?
>>> all([6, 7, 8, 9])
True
>>> 6 == True
False
Ceci est le bit que je n'obtiens pas?
voir 'bool (6)'. –
True et False ont une valeur ordinale de 0 et 1 IIRC. D'où ce comportement. Si vous voulez interpréter comme bool, utilisez, par exemple, 'bool (6)' –
On dirait que ça a été fermé trop vite. Vérifiez-moi: ce que vous demandez vraiment, c'est que '6' et' 7' semblent être 'Faux', alors pourquoi est-ce que la deuxième expression 'True'. Si c'est le cas, la réponse est que les entiers non-zéros s'évaluent à "True" dans un contexte booléen; mais quand vous testez '6 == True', l'entier n'est pas forcé dans un type booléen, donc vous testez' 6 == 1', ce qui est 'False'. –