Это никогда не будет правильно печатать, что число является четным, и никогда не печатать вообще, если число нечетное. Он должен повторяться бесконечно, если у вас есть нечетное число, и если у вас есть четное число, он распечатает, что это нечетное число, потому что он достигает дна, только если это 0, а 0 не 2.
jonhopkins 21 нояб. 2013, в 18:35
Кроме того, number =<2 является ошибкой синтаксиса. Это должно быть number <= 2 .
Tim Pietzcker 21 нояб. 2013, в 18:43
Показать ещё 1 комментарий
Поделиться:
3 ответа
Это классический пример взаимно-рекурсивных функций:
def even(number): if number == 0: return True return odd(number — 1) def odd(number): if number == 0: return False return even(number — 1) def isEven(number): if even(number): print(«Number is even») else: print(«Number is odd»)
Óscar López 21 нояб. 2013, в 19:41
Поделиться
Рекурсивная реализация будет выглядеть так:
def isEven(number): if number < 2: return number % 2 == 0 return isEven(number — 2)
>>> isEven(3) False >>> isEven(2) True
Ваша функция не вызывает себя и поэтому не использует рекурсию. Цикл while будет использоваться в нерекурсивной функции, поскольку цикл будет многократно вычитать 2 из числа.
4.1 Четное или нечетное. «Поколение Python»: курс для начинающих. Курс Stepik
Вышеуказанная функция проверяет, меньше ли это число 2, а затем выводит ответ ( number % 2 == 0 означает: остальная часть после деления на 2 равна нулю?). Если число больше 2, мы рекурсивно вызываем isEven с меньшим числом ( number — 2 ). Это означает, что мы будем повторно называть isEven меньшим числом, пока число не станет меньше 2.
Simeon Visser 21 нояб. 2013, в 18:59
Поделиться
def isEven(x): if x == 0: return True elif x == 1: return False else: return not isEven(x-1)
Просто не пытайтесь делать это на числах больше 994 или меньше 0!
Вы не можете вызывать эту функцию на любых числах, меньших нуля, потому что любой вход, который не равен 0 или 1, вызывает функцию, вызываемую на меньшее число. Если первый вызов функции находится на отрицательном числе, то вычитание из него явно никогда не приведет к тому, что оно будет 0 или 1, поэтому функция будет бесконечно называть себя, рекурсивным эквивалентом бесконечного цикла. Тем не менее, вы можете изменить эту функцию, чтобы она работала на отрицательные входы — это оставлено как упражнение для читателя!
Вы не можете вызывать его на номерах больше 994 (или около них (или, скорее, цифры больше или равны или немного меньше глубины рекурсии)), поскольку он вызывает ошибку StackOverflow (описанную как RuntimeError: maximum recursion depth exceeded ). Чтобы понять, что это значит, вам нужно будет понять рекурсию (и чтобы понять рекурсию, вам нужно понять рекурсию, как старая шутка). Или вы можете посмотреть на полезные ресурсы, такие как this и .
rlms 21 нояб. 2013, в 19:30
Поделиться
почему это не работает для этих чисел
rggod 21 нояб. 2013, в 19:04
Ещё вопросы
- 1 Набор тегов API Google Tag Manager overrideGaSettings = false при создании тега
- 1 Как получить скорость вращения вентилятора моего графического или центрального процессора с помощью OpenHardwareMonitor?
- 0 Директива AngularJS для вкладок пользовательского интерфейса BootStrap (проблемы с областью изоляции)
- 1 Изменение состояния элементов управления ленты Office из других мест приложения в VSTO
- 0 Как представить данные двоичного массива байтов в C ++?
- 1 Matplotlib: полярная проекция transData.transform дает неправильные значения
- 1 Adview не отображается в Android
- 0 ключ возврата => пара значений массива с циклом PHP foreach
- 0 Получить сумму всех строк в каждой записи
- 0 Как я могу заполнить выпадающий список в JQuery
- 0 Как выполнить модульное тестирование контроллера с обратным вызовом в AngularJS
- 0 Выберите последнюю запись столбца с group_by
- 0 как связать область / модель с угловым интерфейсом $ modal.popup ()
- 0 Android показать график просмотра текста
- 1 Android — не удается обнаружить QR-код с библиотекой zxing
- 0 Получить предыдущий отображаемый вывод из окна cmd
- 1 Код синхронизации для Promise All [дубликаты]
- 1 Поднять событие, которое передает другое
- 0 PHP Regexp для получения переменной = «значение» из строки
- 0 как избежать бесконечной анимации, вызванной несколькими нажатиями на элемент меню
- 0 Разрешить только часть HTML-тегов в текстовой области ASP.Net
- 1 Как игнорировать скрытые файлы при использовании os.stat () в Python?
- 0 Код CodeIgniter работает в браузере, умирает в тесте phpunit: вызов неопределенного метода CI_DB_mysql_driver :: where () в (… privacy ..) users.php в строке 36
- 1 Маршрутизатор не определен Node.js
- 0 Присоединение узла к LinkedList
- 1 Захват функций с помощью регулярных выражений
- 1 Есть ли в Android Studio ярлык для перехода из текущего файла в родительский класс?
- 1 Проблемы с настройкой GUI
- 0 для каждого счетчика цикл в C ++ не увеличивается с определенными числами
- 0 PHP Alter Base64 Кодировка изображения
- 0 не работает
- 0 Динамический метатег с angularJS
- 1 Внутри класса доступ к значениям словаря в одной функции из другой
- 1 C # String elemenths диапазон «:» эквивалент
- 0 EM алгоритм, чтение и сохранение файла XML
- 0 Как я могу найти [внутри моего столбца MySQL?
- 0 Использование другого интерфейса со структурой данных stl
- 0 Перенаправление на страницу успеха с заголовком в Swift Mailer
- 1 Правильное отображение тенденций в matplotlib python, таких как электронные таблицы
- 1 Кодирование Crockford base32 для большого числа — реализация Java
- 0 MySQL JSON заменить строку в целое число
- 0 Вставка данных в MySQL DB с использованием Python [дубликаты]
- 0 Компресс Классы DAO слоя
- 1 java.lang.NullPointerException в сервлете
- 1 Добавление атрибутов к сообщениям SOAP в node.js (node-soap)
- 1 Правильное использование IEnumerable
- 0 как удалить файл контроллера ошибок в угловых JS
- 0 Компиляция кода ошибки из Learning Modern 3D Graphics Программирование неразрешенного внешнего символа _main, на который ссылается функция ___tmainCRTStartup
- 1 Как уменьшить / изменить задержку после сканирования?
- 0 Как передать статус `контроллеров` в шаблонную функцию` directive`?
Источник: overcoder.net
Python. Проверка на четность/нечетность
Как проверить число на четность в Python?
num1 = 10 num2 = 7 num3 = 5 if num1 % 2 == 0: #первый способ print(‘num1 четное’) if num2 % 2: #второй способ print(‘num2 нечетное’) if not num3 % 2: #третий способ print(‘num3 четное (это не выведется)’) Эти способы основаны на операторе остатка %. a % b == 0 значит, что а дает при делении на b остаток 0 (a делится на b). Вывод: num1 четное num2 нечетное Читать далее
В Python не плох. · 29 апр 2022
If n % 2 == 0 .Если тебе было нужно только это, то у меня всё. Но если нужно проверку вызвать несколько раз, советую написать функцию. Она будет выглядеть так: Def n(x): If x % 2 == 0: return True (или return x, если нужно само число) Читать далее
2 эксперта согласны
Программист-любитель · 27 апр 2022
Точно так же, как и в любом другом языке программирования – с помощью оператора взятия остатка от деления «%». Если результат деления числа на 2 с помощью этого оператора равен нулю – число чётное, если нет – число нечётное.
2 эксперта согласны
подтверждает
Для полноты картины, вот так выглядит сниппет: if variable % 2 == 0: # число чётное else: # число нечётное. Читать дальше
Источник: yandex.ru
Функция Python для проверки числа на четность или нечетность
В этом учебнике по Python мы изучим функцию Python, чтобы проверить, является ли заданное число четным или нечетным. Кроме того, мы узнаем о четных и нечетных числах в Python.
Четное или нечетное число в Python
В математике целые числа можно разделить на две основные категории, а именно: четные и нечетные числа. Четное число — это целое число, которое точно делится на 2, т. е. при делении на 2 остатка нет. С другой стороны, нечетное число — это целое число, которое не делится без остатка на 2.
Программа Python для поиска нечетного или четного с использованием функции
- Чтобы определить, является ли число четным или нечетным, мы используем оператор модуля ( % ), который возвращает остаток от деления. В Python оператор модуля — это знак процента ( % ).
- При делении числа на 2, если в остатке остается 0, то это четное число.
- Если в остатке остается 1, то это нечетное число.
Функция Python для проверки, является ли заданное число четным или нечетным
Давайте теперь реализуем функцию на Python:
def check_even_odd(number): if number % 2 == 0: return «Even» else: return «Odd» print(check_even_odd(7)) print(check_even_odd(8)) print(check_even_odd(0))
- В этом фрагменте кода мы определили функцию с именем check_even_odd который принимает один аргумент number .
- Внутри функции мы использовали оператор if-else с условием number % 2 == 0 . Это условие будет истинным, если number делится на 2 без остатка (т. е. это четное число), и функция вернет строку «Четное».
- Если условие ложно (т. number не делится нацело на 2, что делает его нечетным числом), функция вернет строку «Odd».
- Далее мы видим, что функция правильно идентифицирует 10 как четное число, 13 как нечетное число и 0 (которое считается четным) как четное число.
Выход:
Заключение
В этой статье мы узнали, как создать функцию Python, которая может определить, является ли заданное число четным или нечетным.
Вы также можете прочитать следующие руководства по Python.
Я Биджай Кумар, Microsoft MVP в SharePoint. Помимо SharePoint, последние 5 лет я начал работать над Python, машинным обучением и искусственным интеллектом. За это время я приобрел опыт работы с различными библиотеками Python, такими как Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn и т. д. для различных клиентов в США, Канаде, Великобритании, Австралии, Новая Зеландия и т. д. Проверьте мой профиль.
Источник: pythonbook.site