Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 2, 2016 20:42:05

cybermajestic
Зарегистрирован: 2016-10-02
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Не понятен код

sss

Отредактировано cybermajestic (Ноя. 5, 2018 23:03:51)

Офлайн

#2 Окт. 2, 2016 23:23:31

blindpew
Зарегистрирован: 2016-09-28
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Не понятен код

Попробуй указать "print(is_odd(-1))" - что произойдёт?

Офлайн

#3 Окт. 3, 2016 02:58:38

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

Не понятен код

Да, оригинальный способ проверки четности чисел. По сути, ваш код это программная запись следующего рекурсивного определения четного и нечетного чисел:
1) Число 0 четное по определению
2) Число n четно, если n-1 нечетное
3) Число n нечетно, если оно не четно

Что просходит, когда мы вызываем, например, is_even(2):
1) проверяется нечетность n-1: т.е. вызывается is_odd(1), это в свою очередь равно not , теперь вызывается is_even(1), что приводит к not[ not ], а is_even(0) - это True, таким образом not not True = True, и мы имеем, что 2 - это четное.

Создаваемая данными функциями рекурсия фактически вычисляет is_even(0) “применив” предварительно n-раз операций not к результату. C любым четным not-ы друг друга “сокращают”, а c нечетным - один not остается и меняет is_even(0) =True на False.

Отредактировано scidam (Окт. 3, 2016 03:00:53)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version