2012-03-17 16 views
0

私はこれまでのところ、これを持っていますが、私は.datファイルを上書きする方法がわからない。ここで.datファイルから平均を計算するPythonプログラムを作成するにはどうすればよいですか?

def main(): 
    fname = input("Enter filename:") 
    infile = open(fname, "r") 
    data = infile.read() 
    print(data) 

for line in infile.readlines(): 
    score = int(line) 
    counts[score] = counts[score]+1 
    infile.close() 

total=0 
    for c in enumerate(counts): 
     total = total + i*c 
     average = float(total)/float(sum(counts)) 
     print(average) 
main() 

は私の.datファイルです:

4 
3 
5 
6 
7 

マイ統計の教授は、私たちが学ぶことを期待します平均と標準偏差を計算するPython。私が知る必要があるのは、平均をどうやって行うのかということだけです。それから私は残りの部分を把握しています。私はPythonが.datファイルの各行にどのように書き込むのか知りたいです。誰かがこのコードを修正する方法を教えてもらえますか?私はこれまでプログラミングをしていません。

私はこの質問をトピックに希望します。私はこれをmathstackexchangeで尋ね、敵対的な反応を得た。私は、これはトリックやるべきだと思う

+0

Crossvalidated FAQを見つけましたか?この質問は、math.stackexchange上の人々が提案したように、おそらくstackoverflow上にあるはずです。 –

+0

おそらくこれをhttp://programmers.stackexchange.comに移行しますか? – JonnyBoats

+0

私はそれを得ることができません、どうしてファイルを書く**必要がありますか? –

答えて

1

def main(): 
    fname = input("Enter filename:") 
    infile = open(fname, "r") 

    numbers = [] 
    for line in infile: 
     numbers.append(int(line)) 
    infile.close() 

    average = float(sum(numbers))/len(numbers) 
    print(average) 

main() 

は、ファイルの行の上に単純化された反復に注意してください。数字はnumbersリストに格納され、その合計は平均を計算するためにリストの長さで除算されます。すべては最後の行で呼び出されるmain()関数内で行われます。

+0

'open'呼び出しを' with'文で囲む方が安全かもしれません。 –

0

私はLevの答えをどのようにコメントするのか分かりません。平均の計算が十分であることがわかりました。私は今それをやったので、あなたは下の標準偏差を得る方法を見ているかもしれません。

def main(): 
    [...] 
    sec_mom = 0 
    for n in numbers: 
     sec_mom = sec_mom + n**2 

    var = sec_mom - average**2 

    from math import sqrt 
    std_dev = sqrt(var) 

    print std_dev 

ここで[...]は、上記のようにmain()の内側に何があるかを示します。さらに、その中にあるものを理解するために、「print something」を追加することもできます。何か。そしてPythonはインタラクティブに使うことができるので、コードを一度にPythonインタプリタに挿入して、コードを一歩一歩試してみてください。

+1

'sec_mom'は[list comprehension](http://docs.python.org/tutorial/datastructures.html#list-comprehensions)で1行で計算できます:' sec_mom = sum([n ** 2 for n in n]数字)])。 –

+0

いいです、私はPythonでリストの理解が大好きです:D – Konsta

関連する問題