2015-10-30 3 views
0

Я пытаюсь сделать практическую проблему, которая включает суммирование чисел в цикле. Я думал, что следующий код будет работать, но я ответил неправильно. Есть идеи??Python 2 - Суммирование чисел в списке

sortedList = map(int, "283 889 22 352 744 969 40 1248 309 197 1274 630 1040 1161 1040 338 486 295 202 914 778 428 405 483 662 363 1139 968 943 820 481 1217 408 493 268 1143 161 299 1090 461 486 1064 1081".split()) 

sum = 0 
for number in sortedList: 
    sum += sortedList.pop 

print sum 
+1

Переключить на 'в то время как SortedList:' (хотя это * не * сортируется) или 'сумма + = number' или просто использовать 'sum'. ** Не ** изменяйте длину списков, пока вы их перепутаете. – jonrsharpe

ответ

0

Ваш код выдает ошибку, вы забыли скобку для функции pop:

for number in sortedList: 
    sum += sortedList.pop() 

Заметим, что вы также могли бы использовать функцию sum:

sum(sortedList) 

, но так как вы используется переменная sum, эта функция не может быть использована.

Редактировать 1: как прокомментировал jonrsharpe, ваш метод на самом деле ошибочен! Вы просматриваете список с for, но в то же время вы выскакиваете (то есть получаете и удаляете последний элемент), поэтому ваш ответ неверен: 14866 вместо 28074.

Вы можете использовать sum функция я упомянул или сделать:

s = 0 
for number in sortedList: 
    s += number 

или поп:

s = 0 
while sortedList: 
    s += sortedList.pop() 
+1

Не будет ли это продолжаться, когда он попытается перебрать список по мере его сокращения? – jonrsharpe

Смежные вопросы