RokokoLite
@RokokoLite
Помешан на математике и анализе данных

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

Я часто вижу такую проверку числа на четность:
if a % 2:
    print('odd')

Но разве это не ужасно нечитаемо? Не будет ли это грубым тоном, если я напишу
if a % 2 != 0:
    print('odd')

или
if a % 2 == 1:
    print('odd')
  • Вопрос задан
  • 184 просмотра
Решения вопроса 3
febday
@febday
if a % 2:
Это тоже самое, что и
if a % 2 == 1:
Ну или это
if a % 2 != 0:

Поскольку 1 в булево значениях это True, а первый вид условия отвечает всегда на True, как и другие в принципе

Поэтому решать лишь вам как записывать. В любом из вариантов это читабельно
Ответ написан
Комментировать
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
Но разве это не ужасно нечитаемо?

Зависит от правил установленных при разработке. Как по мне - вполне нормально.
Ответ написан
Комментировать
Maksim_64
@Maksim_64
Data Analyst
Все три нормальные, используй какой нравится. Ничего из твоих примеров не является плохой практикой.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Чтоб было совсем уж явно и правильно:
if bool(a % 2):
Ответ написан
@Speakermen
Можно и так
a = 1
even = a % 2 == 0
odd = a % 2 != 0

if even:
    print('even')

if odd:
    print('odd')


def isEven(value):
  even = value % 2 == 0
  odd = value % 2 != 0

  if even:
    print('even')

  elif odd:
    print('odd')

isEven(2)


def isEven(value):
  even = value % 2 == 0
  print(even if True else False)
    
isEven(2)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы