Though there is one weird edge-case here: `(0 and None) is not None` - if the first part evaluates to False, the and isn't checked anymore and the result is `0`.