À 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.
== 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