Is there any difference in the logic or performance of using the word and vs. the & symbol in Python?
and is a Boolean operator. It treats both arguments as Boolean values, returning the first if it's falsy, otherwise the second. Note that if the first is falsy, then the second argument isn't even computed at all, which is important for avoiding side effects.
Examples:
False and True --> FalseTrue and True --> True1 and 2 --> 2False and None.explode() --> False (no exception)& has two behaviors.
int, then it computes the bitwise AND of both numbers, returning an int. If one is int and one is bool, then the bool value is coerced to int (as 0 or 1) and the same logic applies.bool, then both arguments are evaluated and a bool is returned.TypeError is raised (such as float & float, etc.).Examples:
1 & 2 --> 01 & True --> 1 & 1 --> 1True & 2 --> 1 & 2 --> 0True & True --> TrueFalse & None.explode() --> AttributeError: 'NoneType' object has no attribute 'explode'If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With