Форум сайта python.su
Здравствуйте. К сожалению не смог нигде найти внятной информации, потому, вопрос к экспертам). Только изучаю этот язык программирования и решаю некоторые тестовые задания. Так вот, столкнулся с задачей, в которой, как по мне, нужно использовать несколько раз циклы по входящим данным. Задание:
Дана последовательность натуральных чисел x1, x2, …, xn. Стандартным отклонением называется величина
σ= ((x1−s)**2+(x2−s)**2+…+(xn−s)**2/n−1)**0.5
где s= (x1+x2+…+xn)/n — среднее арифметическое последовательности.
Определите стандартное отклонение для данной последовательности натуральных чисел, завершающейся числом 0.
Один из примеров входящих данных:
1
7
9
0
На сколько я понимаю для решения мне сначала с помощью цикла while нужно посчитать S. После чего использовать цикл while еще раз и опять пройтись по входящим данным для того что бы высчитать σ. Надеюсь я понятно описал свою проблему Не знаю как второй раз запустить цикл по входящим данным.
Помогите советом пожалуйста.
Отредактировано Yurkof (Ноя. 16, 2018 16:30:27)
Офлайн
Yurkofвходные данные читаются один раз и второй раз вы их уже никак не считаете. в первом цикле собираете все данные в список а далее сколько раз угодно работаете с этими данными беря их из списка.
использовать цикл while еще раз и опять пройтись по входящим данным для того что бы высчитать σ
Офлайн
Само чтение сделать в цикле while true, условие завершения цикла введённый ноль. Здесь же в цикле кидать int полученных значений в список. Подсчет среднего можно сделать после завершения цикла приёма данных, через sum(list1)/len(list1). Второй цикл for chislo in list1 будет считать сигму.
Офлайн
Здесь делал однопроходный алгоритм.
Офлайн
Всем огромное спасибо. Сейчас все сделаю через списки. Благодарю за объяснения.
Офлайн