@anton_zaboev

Почему проходит всего 1 итерация?

Добрый день! решаю вот такую задачу619d0370542e5273983934.jpeg
и не могу разобраться почему у меня после проверки проходит всего одна итерация
вот ссылка на код
При получении пустого списка все отрабатывает нормально, но когда список не пустой
if numbers:
        for item in numbers:
            count_respondents += 1
            if int(item) in range(9, 11):
                promoter += 1
            elif int(item) in range(0, 7):
                critic += 1

            nps = round((promoter - critic)/count_respondents*100)
            return nps
то почему то проходит всего 1 итерация и код отрабатывает не до конца и в результате считает не корректно.
Подскажите пожалуйста что я делаю не так и почему проходит всего одна итерация если в списке элементов больше 1?for item in numbers:
  • Вопрос задан
  • 95 просмотров
Решения вопроса 2
@dmshar
Вы заходите в цикл for item in numbers: с первым значением своего массива (10). Что-то там проверяете/меняете и выходите из функции по return. Все.
Могу только предположить, что return nps имеет неверный отступ. Проверяйте.
Ответ написан
@karonion
return нужно вынести за пределы работы for, т.е на 4 отступа назад.
return после первой итерации останавливает работу цикла
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы