2016-06-13 2 views
0

Я новичок на Python, и я бы хотел рассчитать среднее арифметическое.Простая средняя арифметика в Python

a = [int(i) for i in input().split()] 

average=sum(a)/len(a) 

print('The average is:' ,average) 

Я знаю, что такой код действительно решает мои проблемы, но это не совсем то, что я ищу.

Я хочу, чтобы пользователь мог набирать количество членов среднего арифметического, и я хотел бы, чтобы он мог набирать их на разных линиях. Поэтому я подумал, что правильно использовать For Loop. Я вышел с чем-то вроде этого:

n = input('Number of terms') 

for i in range (1,int(n)+1): 

    a=input('Term number '+str(int(i))+': ') 

Я знаю, что все, что мне нужно сделать знать, чтобы найти способ суммировать все значения типизированной на каждом цикле и разделить это число на int(n), но я понятия не имею, как это сделать.

Можете ли вы, ребята, помочь мне с этим?

Спасибо всем!

+0

Если вы используете Python 3, 'input' возвращает строку. Не целое число (или число с плавающей запятой). Если вы используете Python 2 вместо этого, вы не должны использовать 'input', а' raw_input'. – Evert

+0

Поскольку вы хотите сохранить _sequence_ значений, естественно использовать какой-то тип _sequence_, как насчет ['list'] (https://docs.python.org/3/tutorial/datastructures.html#more-on -lists)? –

+0

Evert, я использую Python 3. И Рогальский, я не уверен, как правильно использовать списки, поэтому я попытался решить это только с помощью самых базовых знаний, которые у меня есть. хехе – Lucianowz

ответ

1
n = input('Number of terms') 
acc = 0 
for i in range(1,int(n)+1): 
    a=input('Term number '+str(int(i))+': ') 
    acc += float(a) 
print('The average is ',acc/int(n)) 

Идея заключается в том, чтобы создать аккумулятор переменной acc, к которому добавлены введенные номера. После того, как цикл acc равен сумме всех введенных чисел. Разделите его на количество терминов, и вы получите среднее арифметическое.

+0

Разве это не слово в слово так же, как мой ответ? – SvbZ3r0

+0

О, я вижу! У меня возникла проблема с использованием этой переменной аккумулятора. Я расскажу об этом подробнее. Я думаю, проблема была решена ха-ха. Благодаря :) – Lucianowz

0

Try:

n = int(input('Number of terms')) 
sum = 0 
for i in range (1,n+1): 
    a=int(input('Term number '+str(i)+': ')) 
    sum += a 
avg = sum/n 
+0

Я попробовал ваш код, но я получил сообщение об ошибке: «строка 8, в а * = а TypeError: не может умножать последовательность неисполнения междунар типа" ул» – Lucianowz

+1

' a' является 'int'. Мы явно используем его как 'int' в' a = int (input ('Term number' + str (i) + ':')) '. Вы уверены, что бросили его? – SvbZ3r0

+0

Да, да. Я просто ctrl + c ctrl + v, что ваш ответ. Я использую Python 3 btw. – Lucianowz

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