0

nが原因であることはわかっていますが、nは任意の変数であると想定されており、nのままにしておくと、これが私が持っているものです:

def average(n):
    if n >= 0:
        avg = sum((range(1:int(n)))/float(len(range(1:int(n)))))
    print avg

どうすれば修正できますか?

4

3 に答える 3

2

1 から n までの x の合計は単純に(n + 1) * (n / 2)です。合計される要素の数は ですn。少し単純化すると、新しい関数は次のようになります

def average(n):
    return (n + 1) / 2.0

Python の range() の排他的な上限の動作 (つまり、 average(10) が 1 ~ 10 ではなく 1 ~ 9 の値の合計の平均を返す) が実際に必要な場合は、これを調整する必要があります。

于 2009-10-28T21:37:18.410 に答える
1

私は間違っているかもしれませんが、range(1:int(n))は構文的に正しくないように見え、括弧が一致しません。0からnの範囲の数値の平均を計算することをお勧めします。その場合、私はあなたのコードを次のように置き換えます:

def average(n):
if n >= 0:
    avg = sum((range(int(n))))/float(n)
print avg
于 2009-10-28T21:21:28.060 に答える
0

範囲が常に1:nの場合は、これを使用してみませんか。

avg = sum((range(1:int(n)))/float(n))

または多分私はあなたの質問を理解していません...

于 2009-10-28T21:16:59.937 に答える