@LuizAugusto Veja na documentação: https://docs.python.org/3/reference/expressions.html#boolean-operations
Basicamente, na expressão "x or y":
- se x for verdadeiro, o resultado da expressão é o próprio x
- se x for falso, o resultado da expressão é y
E segundo este outro trecho (https://docs.python.org/3/library/stdtypes.html#truth-value-testing), qualquer número diferente de zero é considerado "verdadeiro"/True
Então 2 é considerado "True", por isso na expressão "2 or qualquer-coisa", como 2 é verdadeiro, o resultado dela é o próprio 2