0

私はpythonでプログラムを作成し、数値を含む外部ファイルを使用しました。数値を格納するリストを作成し、これから平均、標準偏差、およびリストの長さを見つける必要があります。私のプログラムは次のようになります。

data = open( "gauss.dat", "r" )
numbers=[]

for line in data: 
    numbers.append(line)

sorted(numbers)

def length(numbers):
    length = len(numbers)
    return length

def mean(numbers):
    sum = 0
    for element in numbers:
        sum += element

    mean = sum/length
    return (mean)

def main():
    global history

    print (length)
    print('The smallest number is ' + numbers[0])
    print ('The largest number is ' + numbers[-1])
    print(mean)    
    return True

if __name__ == "__main__":

    main()

プログラムを実行すると

  1. 数字が正しくソートされていませんか?私はpythonが初めてなので、明らかなエラーがあるかどうかわかりません
  2. 平均と長さを< function length at 0x039475B0 >,として出力し< function mean at 0x03947630 >ます。これを数値に変換する方法がわかりませんか?

お役に立てれば幸いです。

4

3 に答える 3

1

1)について

help強力なツール: -commandと組み合わせた対話型シェル:

>>> help(sorted)

Help on built-in function sorted in module __builtin__:

sorted(...)
    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

したがって、どちらかが必要です

numbers = sorted(numbers)

また

numbers.sort()

(詳細はhelp(numbers.sort)を参照)

2)について

mgilsonが述べたように:関数を呼び出す必要があります:

print(mean(numbers))

コメントについて

for line in data: 
    numbers.append(line)

ファイルを行ごとに文字列として読み取ります。ただし、いくつかの計算を行うには、数値型が必要です。これを行う1つの方法は次のとおりです。

for line in data: 
    numbers.append(float(line))

これにより、テキストがlineフローティング タイプに変換されます。先頭または末尾のスペースは切り取られますが (少なくとも私の Python インタープリターでは)、空の行または誤った行で問題が発生する可能性があります。

于 2013-04-02T13:57:23.570 に答える