And this statement gets tricky to comprehend! Here's the core idea: the and operator takes precedence over the or operator.
In simpler English, what this means is that the statement looks something like this:
>>>1or (0and1/0) or2
This statement first evaluates 1, finds it to be a truthy value, and immediately returns it. This is why the 1/0 doesn't throw an error.
Try this one yourself:
>>>0orNoneand1/0or2
Now that you've given this a shot, let's walk through it together!
>>>0orNoneand1/0or2>>>0or (Noneand1/0) or2
First, the or statement evaluates 0. Finding it to be a false-y value, it keeps going. It evaluates (None and 1/0) next. In this, the and finds None to be the first false-y value, and immediately returns it. The outer or statements sees None as the next value, and keeps going. It therefore returns 2, the first truth-y value it finds!