Вопрос №55854 от пользователя Надежда Алёшечкина в уроке «Больше о декораторах», курс «Python: Функции»

Надежда Алёшечкина

Добрый день, не совсем понимаю, почему решение не проходит тесты, а именно последний из функции test_memoizing() - "Result for zero should be recalculated!".

>        assert arguments == [0, 1, 2, 10, 0], (
            "Result for zero should be recalculated!",
        )
E       AssertionError: ('Result for zero should be recalculated!',)
E       assert [0, 1, 2, 10] == [0, 1, 2, 10, 0]
E         Right contains one more item: 0
E         Full diff:
E         - [0, 1, 2, 10, 0]
E         ?             ---
E         + [0, 1, 2, 10]

В списке аргументов в тестах присутствует ноль, а в решении отсутствует. Если я правильно понимаю, ноль просто не записывается в список results_queue, то есть дело в этом блоке кода:

if argument not in memory:
    memory[argument] = function(argument)

И мне нужно дописать условие, которое отрабатывает на else, т. е. когда такой же аргумент уже есть. Но не совсем ясно, что там должно содержаться, направьте, пожалуйста

1 0

Aleksei Pirogov

В списке аргументов в тестах присутствует ноль, а в решении отсутствует

Новый ноль появляется потому, что предыдущий ноль должен быть уже отброшен, как выходящий за размеры "памяти".

Если я правильно понимаю, ноль просто не записывается в список results_queue

Есть такая проблема, да. Вы из results_queue вообще только отбрасываете, но нигде не дописываете.

0

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
27 октября 8 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
27 октября 8 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
27 октября 8 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
27 октября 8 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
27 октября 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Новый
Создает веб-приложения со скоростью света
27 октября 5 месяцев