Здесь нет жесткого и быстрого правила. Вот несколько примеров, где я бы использовал каждый:
Предположим, что я взаимодействую с некоторой функцией, которая возвращает -1 в случае ошибки и 0 в случае успеха. Такие функции довольно распространены в C, и они часто возникают в Python при использовании библиотеки, которая оборачивает функции C. В этом случае я бы использовал if x:
.
С другой стороны, если я собираюсь делить на x
и хочу убедиться, что x
не 0
, тогда я собираюсь быть явным и написать if x != 0
.
В качестве грубого эмпирического правила, если я буду трактовать x
как bool
во всей функции, тогда я, скорее всего, буду использовать if x:
- даже если смогу доказать, что x
будет int
. Если в будущем я решу передать функцию bool
(или какой-либо другой тип!) В функцию, мне не нужно ее изменять.
С другой стороны, если я действительно использую x
как int
, тогда я, скорее всего, произнесу 0
.