Найти - Пользователи
Полная версия: Не понятен код
Начало » Python для новичков » Не понятен код
1
cybermajestic
sss
blindpew
Попробуй указать "print(is_odd(-1))" - что произойдёт?
scidam
Да, оригинальный способ проверки четности чисел. По сути, ваш код это программная запись следующего рекурсивного определения четного и нечетного чисел:
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.

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB