¿Cómo funcionan los operadores lógicos `y ‘con enteros en Python?

Entonces, estaba jugando con el intérprete y escribí lo siguiente:

In [95]: 1 and 2 Out[95]: 2 In [96]: 1 and 5 Out[96]: 5 In [97]: 234324 and 2 Out[97]: 2 In [98]: 234324 and 22343243242 Out[98]: 22343243242L In [99]: 1 or 2 and 9 Out[99]: 1 

Inicialmente pensé que tenía que ver con los valores Falso y Verdadero, porque:

 In [101]: True + True Out[101]: 2 In [102]: True * 5 Out[102]: 5 

Pero eso no parece estar relacionado, porque Falso siempre es 0, y parece que en los ensayos anteriores no es el valor más grande que se emite.

No puedo ver el patrón aquí honestamente, y no pude encontrar nada en la documentación (honestamente, no sabía cómo buscarlo de manera efectiva).

Entonces, ¿cómo

 int(x) [logical operation] int(y) 

trabajar en Python?

De la documentación de Python:

La expresión x and y primero evalúa x ; si x es falso, su valor es devuelto; de lo contrario, se evalúa y y se devuelve el valor resultante.

Que es exactamente lo que tu experimento muestra que está sucediendo. Todos sus valores de x son verdaderos, por lo que se devuelve el valor de y .

https://docs.python.org/3/reference/expressions.html#and

Es para cada elemento en Python, no depende del entero.

 not x Returns True if x is True, False otherwise x and y Returns x if x is False, y otherwise x or y Returns y if x is False, x otherwise 

1 es verdadero, por lo que devolverá 2