Und noch warum dein ursprünglicher Code nicht funktioniert:
Du wolltest vermutlich etwas in dieser Form ausdrücken: "x and y <operator> ...". Dafür ist der and Operator nicht da. Dieser verknüpft nur ganze Wahrheitswerte, weswegen du die Bedingungen ausschreiben musst und mit "and" eben keine Vergleiche irgendwie zusammenbauen kannst. "not 1337" prüft nun nicht auf Gleichheit, sondern (da not auch ein boolscher Operator ist) negiert den Wahrheitswert von 1337. Da jede Zahl außer 0 True ist, wird das immer False, und True and False ergibt natürlich wieder False.