На сколько эффективной является проверка на четность (деление нацело) в Python?

Я всегда видел, что для проверки числа на четность используют такой код:

if a % 2:
    print('odd')

Однако, мне кажется, это не очень читабельно. Не будет ли неприличным, если я напишу так:

if a % 2 != 0:
    print('odd')

или так:

if a % 2 == 1:
    print('odd')
  • 5 ноября 2023 г. 11:09
Ответы на вопрос 4
В Python проверка на четность с помощью операции деления нацело (используя оператор `%`) является достаточно эффективной. Она не требует дополнительных математических операций и работает достаточно быстро для большинства чисел.

В отношении читабельности, все три варианта кода, которые вы представили, корректны и могут быть использованы для проверки четности числа. 

Первый вариант (`if a % 2`) проверяет, является ли остаток от деления числа `а` на 2 ненулевым. Если остаток равен 0, то число четное, иначе число нечетное.

Второй вариант (`if a % 2 != 0`) проверяет, делится ли число `а` на 2 с остатком, и если да, то число нечетное.

Третий вариант (`if a % 2 == 1`) проверяет, что остаток от деления числа `а` на 2 равен 1, что также подразумевает, что число нечетное.

Выбор конкретного варианта зависит от ваших предпочтений и может быть решен в соответствии со стандартами кодирования команды или проекта. Важно сохранять последовательность действий так, чтобы она была понятной и легко читаемой для других разработчиков.
if a % 2: Это эквивалентно if a % 2 == 1
if a % 2 != 0: Это эквивалентно if a % 2 == 1 
a = 1
even = a % 2 == 0
odd = a % 2 != 0

if even:
    print('even')

if odd:
    print('odd')
Похожие вопросы