Вопрос №55777 от пользователя Yura в уроке «Типизация», курс «Введение в программирование»
https://ru.hexlet.io/code_reviews/421524 Здравствуйте! У меня ошибка - "Maximum call stack size exceeded" в 8 - ой строке, иногда получал в 9 - ой. В моем понимании терминальный сценарий я указал верно, видимо я не достаточно хорошо понимаю как работает итеративный процес. Подскажите пожалуйста почему программа не приходит к терминальному сценарию.
Yura, здравствуйте.
Происходит зацикливание. Объявление переменной result перенесите в тело функции iter.
Не обратили внимание на Подсказки:
- Выделите процесс суммирования цифр в числе в отдельную функцию
Добрый день! Помог ли вам ответ Вячеслава решить эту задачу?
Вячеслав Павлов, Спасибо большое, да помогло! Только я не совсем понимаю, если я в цикле переопределяю "result", после чего снова вызываю функцию будто - бы с новым значением "result", и тут же опять говорю функции что "result" равен нулю, делая это каждый раз при вызове функции, в моем понимании как раз в этом случае должно зациклиться, функция будет бесконечно присваивать переменной "result" значение 0 и начинать сначала. Предполагаю что тут срабатывает замыкание, поправьте меня пожалуйста если я не прав.
Максим Литвинов, Да, спасибо, прошу прощения за длительный ответ!
Yura переопредиляю в начале функции*
Максим Литвинов, Да, спасибо большое! Только я не совсем понимаю, если я в цикле переопределяю переменную "result" а потом при повторном вызове функции снова говорю ей что "result" равен нулю, то в моем понимании как раз в этом случае должно произойти зацикливание, функция будет каждый раз начинать с 0 в переменной "result". Предполагаю что тут срабатывает замыкание. Попровьте меня если это не так. И да, я обратил внимание на подсказку, я совсем не понимал как это сделать и решил завершить задание как понимаю сам, потом посмотреть что у "учителя" :)
Максим Литвинов, Да, спасибо большое! Только я не совсем понимаю, если я в цикле переопределяю переменную "result" а потом при повторном вызове функции снова говорю ей что "result" равен нулю, то в моем понимании как раз в этом случае должно произойти зацикливание, функция будет каждый раз начинать с 0 в переменной "result". Предполагаю что тут срабатывает замыкание. Попровьте меня если это не так. И да, я обратил внимание на подсказку, я совсем не понимал как это сделать и решил завершить задание как понимаю сам, потом посмотрю что у "учителя" :)
Максим Литвинов, Да, спасибо большое! Только я не совсем понимаю, если я в цикле переопределяю переменную "result" а потом при повторном вызове функции снова говорю ей что "result" равен нулю, то в моем понимании как раз в этом случае должно произойти зацикливание, функция будет каждый раз начинать с 0 в переменной "result". Предполагаю что тут срабатывает замыкание. Попровьте меня если это не так. И да, я обратил внимание на подсказку, я совсем не понимал как это сделать и решил завершить задание как понимаю сам, потом посмотрю что у "учителя" :)
Используйте Хекслет по максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.







