2012-04-24 1 views
-1

Хорошо, я нахожусь в тупике при создании функции в python, которая использует цикл while для вычисления среднего значения. Использование цикла for является простым, но я не понимаю, как воссоздать эту функцию, используя цикл while.Расчет среднего значения в python с использованием цикла while

def average(list): 
    total = 0.0 
    for number in list: 
     total = total + number 
    return total/len(list) 

Может ли кто-нибудь дать мне руку о том, как использовать цикл while для этой функции?

+0

Вы должны маркировать домашнее задание как таковой. –

+2

Пожалуйста, не * всегда * используйте 'list' в качестве имени переменной. Вы затеняете встроенный тип 'list'. –

+0

И зачем использовать цикл while? Это домашнее задание? Хороший способ: 'avg = float (sum (l))/len (l)' – Zenon

ответ

0

Я дам вам полезный намек. В списках python вы можете получить доступ к элементу в списке, используя квадратные скобки: list[3]. Это вернет элемент 4th в списке. Первый элемент имеет индекс 0 (list[0]).

1

Подсказки:

  • Вы можете получить значения из списка с помощью индексации, s[i], например.
  • В цикле while необходимо проверить, когда вы достигли конца списка.
  • Вы можете сказать, когда вы в конце списка с помощью LEN()
0
i = 0 
total = 0.0 
while(i < len(list)) 
    total = total + list[i] 
    i = i+1 
return total/len(list) 

Но почему вы хотите использовать for и while для решения этой задачи в первую очередь? Это проще использовать функциональный подход, как

return reduce(lambda x, y: x+y, list)/len(list) 

или просто

return sum(list)/len(list) 
+0

У ваших функциональных подходов есть ошибка. –