2016-06-13 10 views
0

私はPythonの初心者です。算術平均を計算したいと思います。Pythonでの単純な算術平均

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

average=sum(a)/len(a) 

print('The average is:' ,average) 

私はこのようなコードが私の問題を解決することは知っていますが、それは私が探しているものではありません。

私は、算術平均の項の数を入力できるようにしたいと思っています。別の行に区切り文字を入力できるようにしたいと思います。だから私は使用するべき正しいものがFor Loopだと思った。私はこのような何かで出てきた:私は私が知っている必要があるすべては、各ループに入力されたすべての値を合計し、int(n)ことで、この数を分割する方法を見つけることであることを知っている

n = input('Number of terms') 

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

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

が、私は考えていますどうやってするか。

あなたは私を助けてくれますか?

ありがとうございました!

+0

Python 3を使用している場合、 'input'は文字列を返します。整数(浮動小数点数)ではありません。代わりにPython 2を使用している場合は、 'input'ではなく' raw_input'を使用してください。 – Evert

+0

_sequence_の値を保存したいので、何らかの_sequence_タイプを使用するのが自然です。['list'](https://docs.python.org/3/tutorial/datastructures.html#more-on - リスト)? –

+0

Evert、私はPython 3を使用しています。 Rogalski、私はリストを正しく使う方法がわからないので、これを私が持っている非常に基本的な知識だけで解決しようとしました。 – 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

試してみてください。

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

笑私はあなたのコードを試してみましたが、私はこのエラーメッセージました: – Lucianowz

+1

'A'がある:「型『str』は、非整数でシーケンスを乗算することはできません例外TypeErrorが = *でライン8を、」 'int'。私たちは 'a = int(input( 'Term number' + str(i)+ ':'))'で明示的に 'int 'としてキャストします。あなたはそれをキャストしてもよろしいですか? – SvbZ3r0

+0

はい、私はしました。私はちょうどctrl + c ctrl + vあなたの答え。私はPython 3 btwを使用しています。 – Lucianowz

関連する問題