À l'aide d'un Booléen dans un if en Python
J'ai un code avec un if, et l'une des conditions est un booléen. Cependant, CodeSkulptor dit "la Ligne 36: TypeError: unsupported operand type(s) de BitAnd: 'bool' et 'nombre'". S'il vous plaît aider si vous le pouvez. C'est ce que ce morceau de code ressemble. (Je viens de changer tous les noms de variable et de ce que le si-exécution d'une instruction)
thing1 = True
thing2 = 3
if thing2 == 3 & thing1:
print "hi"
L'utilisation et au lieu de &. Un mot de prudence, utilisez des parenthèses parmi les expressions que vous souhaitez évaluer. Vous pouvez trouver des résultats inattendus si vous n'avez pas.
Vrai, mais pour citer le zen de python: explicit est mieux qu'implicites. Je préfère rajouter encore clarifier les parenthèses que de s'appuyer sur une connaissance imparfaite de la priorité de l'opérateur.
J'ai rarement vu
==
a une priorité plus élevée que and
, de sorte que rien ne se passera.Vrai, mais pour citer le zen de python: explicit est mieux qu'implicites. Je préfère rajouter encore clarifier les parenthèses que de s'appuyer sur une connaissance imparfaite de la priorité de l'opérateur.
J'ai rarement vu
if (foo == 2) and bar
, mais c'est une préférence personnelle pour les ajouter si vous vous sentez qu'ils le rendre plus clair.OriginalL'auteur Rohan Khajuria | 2013-05-12
Vous devez vous connecter pour publier un commentaire.
Vous souhaitez utiliser la logique
and
(pas le&
, qui est le niveau du bit ET de l'opérateur en Python):Parce que vous avez utilisé
&
, l'erreur a sauté vers le haut, en disant:OriginalL'auteur pradyunsg
&
est le niveau du bit ET de l'opérateur. Vous souhaitez utiliser la logiqueand
à la place:OriginalL'auteur Blender