@hjolming
Грузчик с красным дипломом технаря

Почему питон игнорирует первое значение списка?

Это из упражнения

list = [1, 2, 3, 4, 5, 6, 7, 8, 9]

sum = 0
mult = 0
for sum in list:
    if(sum<9):
        mult = mult + list[sum]
        sum = sum+1
    else:
        print(mult)


Должно получиться 45, вместо этого выводит 44. Как будто питон игнорит list[0], который равен 1. Что не так с кодом?
  • Вопрос задан
  • 233 просмотра
Решения вопроса 1
@PavelMos
for sum in list- это перебор элементов списка по-порядку
mult = mult + list[sum] это обращение к элементу списка по индексу. Первый элемент это 1, значит по индексу это будет уже второй, потому что нумерация идёт с нуля.

sum = sum+1 - нет смысла, это значение будет сбрасываться в начале цикла, потому что там перебор sum из списка
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Klork
Попробуй заменить "list[sum]" на "sum"
Ответ написан
@SirotaKazansky
System Analyst
А у Вас там не бывает list[0] , у вас "sum in list" это 1, 2 и так далее. То есть sum это не индекс.
Запустите, поймете о чем я:
list = [123, 277, 783, 8974, 75, 78676, 147, 7828, 9099]
sum = 0
for sum in list:
    print(sum)
Ответ написан
Комментировать
SoreMix
@SoreMix Куратор тега Python
yellow
Потому что вы итерируете список, при этом обращаетесь зачем-то по сумме к индексу.

list = [1, 2, 3, 4, 5, 6, 7, 8, 9]

sum = 0
mult = 0
for number in list:
    if (sum<9):
        mult = mult + number
        sum = sum+1
    else:
        print(mult)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы