1. Главная
  2. Библиотека
  3. Программирование
  4. Петя очень любит запускать функции и очень радуется, ко...
Разбор задачи

Петя очень любит запускать функции и очень радуется, когда получает правильный ответ. И еще раз, и еще раз, и еще раз... Но при этом ему не нравится, что ему приходится постоянно запускать одно и то же. Помогите ему и сделайте декоратор, с помощью

  • Предмет: Программирование
  • Автор: Кэмп
  • #Основы алгоритмизации и программирования
  • #Языки программирования (C++, Java, Python и др.)
Петя очень любит запускать функции и очень радуется, когда получает правильный ответ. И еще раз, и еще раз, и еще раз... Но при этом ему не нравится, что ему приходится постоянно запускать одно и то же. Помогите ему и сделайте декоратор, с помощью

Условие:

Петя очень любит запускать функции и очень радуется, когда получает правильный ответ. И еще раз, и еще раз, и еще раз... Но при этом ему не нравится, что ему приходится постоянно запускать одно и то же. Помогите ему и сделайте декоратор, с помощью которого Петя сможет запустить одну и ту же функцию столько раз, сколько ему захочется.

Задание: напишите декоратор make_more(iters), который по заданному числу повторений выполнит функцию iters количество раз.

По умолчанию значение iters должно равняться двум. Если в качестве аргумента iters приходит невалидное значение (float, строка или отрицательное значение), то iters должен быть равен 1.

Решение:

  1. Определяем декоратор make_more с параметром iters, который по умолчанию равен 2. Это позволит, если не передавать параметр, запускать функцию дважды.

  2. Перед созданием внутреннего декоратора проверяем значение iters. Если iters не является целым числом или если iters меньше нуля (отрицательное значение), то присваиваем ему значение 1. Это делается, чтобы избежать невалидных значений (например, float или строка).

  3. Внутри make_more создаем вложенную функцию decorator, которая...

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

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какое поведение будет у декоратора `make_more`, если в качестве аргумента `iters` передать значение `0.5`?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет