and с числами в Python выполняет логическое "И". Он возвращает:
  False, любое другое число - True.
При использовании оператора and с числами в Python, происходит логическое И.  Оператор and возвращает значение, которое после приведения к логическому типу bool было бы False, если хотя бы один из операндов можно интерпретировать как False. В противном случае, возвращается последний операнд.
Числа интерпретируются как True или False следующим образом:
0 (ноль) считается False.True.Вот несколько примеров:
5 and 3 возвращает 3 (оба True, возвращается последний).0 and 3 возвращает 0 (первый False, возвращается он).3 and 0 возвращает 0 (первый True, второй False, возвращается он).-1 and 1 возвращает 1 (оба True, возвращается последний).Важно понимать, что and не всегда возвращает True или False.  Он возвращает один из операндов. Для получения булевого результата можно использовать bool(x and y).
Пример:
    x = 5 and 3  # x будет равно 3
    y = 0 and 3  # y будет равно 0
    z = bool(5 and 3) # z будет равно True
  В контексте условных выражений,  результат and автоматически приводится к bool, поэтому обычно нет необходимости явно использовать bool().